This commit is contained in:
Adrian Hopek
2022-02-07 08:05:35 +01:00
parent 41c769d4ab
commit eadf984f30
21 changed files with 323 additions and 104 deletions

View File

@@ -4,10 +4,18 @@ declare(strict_types=1);
namespace Toby\Domain\Validation\Rules;
use Closure;
use Illuminate\Validation\ValidationException;
use Toby\Eloquent\Models\VacationRequest;
interface VacationRequestRule
abstract class VacationRequestRule
{
public function check(VacationRequest $vacationRequest, Closure $next);
public function check(VacationRequest $vacationRequest): void
{
if (! $this->passes($vacationRequest)) {
throw ValidationException::withMessages(["vacationRequest" => $this->errorMessage()]);
}
}
public abstract function passes(VacationRequest $vacationRequest): bool;
public abstract function errorMessage(): string;
}