* #20 - wip * #20 - wip * #20 - fix * #20 - wip * #20 - fix * #20 - fix
This commit is contained in:
35
app/Domain/Validation/VacationRequestValidator.php
Normal file
35
app/Domain/Validation/VacationRequestValidator.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Toby\Domain\Validation;
|
||||
|
||||
use Illuminate\Pipeline\Pipeline;
|
||||
use Toby\Domain\Validation\Rules\ApprovedVacationDaysInSameRange;
|
||||
use Toby\Domain\Validation\Rules\DoesNotExceedLimitRule;
|
||||
use Toby\Domain\Validation\Rules\MinimumOneVacationDayRule;
|
||||
use Toby\Domain\Validation\Rules\PendingVacationRequestInSameRange;
|
||||
use Toby\Eloquent\Models\VacationRequest;
|
||||
|
||||
class VacationRequestValidator
|
||||
{
|
||||
protected array $rules = [
|
||||
MinimumOneVacationDayRule::class,
|
||||
DoesNotExceedLimitRule::class,
|
||||
PendingVacationRequestInSameRange::class,
|
||||
ApprovedVacationDaysInSameRange::class,
|
||||
];
|
||||
|
||||
public function __construct(
|
||||
protected Pipeline $pipeline,
|
||||
) {
|
||||
}
|
||||
|
||||
public function validate(VacationRequest $vacationRequest): void
|
||||
{
|
||||
$this->pipeline
|
||||
->send($vacationRequest)
|
||||
->through($this->rules)
|
||||
->via("check");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user