refactor: remove redundant date validation logic from AcademicTermRequest
This commit is contained in:
parent
ded7217dbc
commit
9823b879d8
@ -46,37 +46,11 @@ function ($attribute, $value, $fail) {
|
||||
'start_date' => [
|
||||
'required',
|
||||
'date',
|
||||
function ($attribute, $value, $fail) {
|
||||
$academicYear = $this->input('academic_year');
|
||||
$semester = $this->input('semester');
|
||||
if ($academicYear && preg_match('/^(\d{4})\/(\d{4})$/', $academicYear, $matches)) {
|
||||
$startYear = (int) $matches[1];
|
||||
$endYear = (int) $matches[2];
|
||||
$dateYear = (int) date('Y', strtotime($value));
|
||||
$expectedYear = $semester === 'even' ? $endYear : $startYear;
|
||||
if ($dateYear !== $expectedYear) {
|
||||
$fail('Start date harus berada di tahun '.$expectedYear.' untuk semester '.($semester === 'even' ? 'Genap' : 'Ganjil').'.');
|
||||
}
|
||||
}
|
||||
},
|
||||
],
|
||||
'end_date' => [
|
||||
'required',
|
||||
'date',
|
||||
'after_or_equal:start_date',
|
||||
function ($attribute, $value, $fail) {
|
||||
$academicYear = $this->input('academic_year');
|
||||
$semester = $this->input('semester');
|
||||
if ($academicYear && preg_match('/^(\d{4})\/(\d{4})$/', $academicYear, $matches)) {
|
||||
$startYear = (int) $matches[1];
|
||||
$endYear = (int) $matches[2];
|
||||
$dateYear = (int) date('Y', strtotime($value));
|
||||
$expectedYear = $semester === 'even' ? $endYear : $startYear;
|
||||
if ($dateYear !== $expectedYear) {
|
||||
$fail('End date harus berada di tahun '.$expectedYear.' untuk semester '.($semester === 'even' ? 'Genap' : 'Ganjil').'.');
|
||||
}
|
||||
}
|
||||
},
|
||||
],
|
||||
'is_active' => ['boolean'],
|
||||
'open_semesters' => ['nullable', 'array'],
|
||||
|
||||
Loading…
Reference in New Issue
Block a user