wip: first working version
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Validator\Constraints;
|
||||
|
||||
use App\BusProNet\ApiClient;
|
||||
use App\BusProNet\Model\BookingUpdate;
|
||||
use App\BusProNet\Model\Notification;
|
||||
use App\Form\Model\BookingData;
|
||||
use Symfony\Component\Validator\Constraint;
|
||||
use Symfony\Component\Validator\ConstraintValidator;
|
||||
|
||||
class BookingValidator extends ConstraintValidator
|
||||
{
|
||||
public function __construct(private readonly ApiClient $apiClient)
|
||||
{
|
||||
}
|
||||
|
||||
public function validate(mixed $value, Constraint $constraint): void
|
||||
{
|
||||
/** @var BookingData $booking */
|
||||
$bookingData = $value;
|
||||
|
||||
$result = $this->apiClient->updateBooking($bookingData);
|
||||
|
||||
if ($result instanceof Notification) {
|
||||
$this->context
|
||||
->buildViolation($result->message)
|
||||
->addViolation()
|
||||
;
|
||||
}
|
||||
|
||||
if ($result instanceof BookingUpdate && false === $result->valid) {
|
||||
$this->context
|
||||
->buildViolation($constraint->message)
|
||||
->addViolation()
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user