cbcf62086f
Co-authored-by: DaneEveritt <dane@daneeveritt.com>
59 lines
1.4 KiB
PHP
59 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Pterodactyl\Exceptions\Model;
|
|
|
|
use Illuminate\Support\MessageBag;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Contracts\Validation\Validator;
|
|
use Pterodactyl\Exceptions\PterodactylException;
|
|
use Illuminate\Contracts\Support\MessageProvider;
|
|
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
|
|
|
|
class DataValidationException extends PterodactylException implements HttpExceptionInterface, MessageProvider
|
|
{
|
|
/**
|
|
* DataValidationException constructor.
|
|
*/
|
|
public function __construct(protected Validator $validator, protected Model $model)
|
|
{
|
|
$message = sprintf(
|
|
'Could not save %s[%s]: failed to validate data: %s',
|
|
get_class($model),
|
|
$model->getKey(),
|
|
$validator->errors()->toJson()
|
|
);
|
|
|
|
parent::__construct($message);
|
|
}
|
|
|
|
/**
|
|
* Return the validator message bag.
|
|
*/
|
|
public function getMessageBag(): MessageBag
|
|
{
|
|
return $this->validator->errors();
|
|
}
|
|
|
|
/**
|
|
* Return the status code for this request.
|
|
*/
|
|
public function getStatusCode(): int
|
|
{
|
|
return 500;
|
|
}
|
|
|
|
public function getHeaders(): array
|
|
{
|
|
return [];
|
|
}
|
|
|
|
public function getValidator(): Validator
|
|
{
|
|
return $this->validator;
|
|
}
|
|
|
|
public function getModel(): Model
|
|
{
|
|
return $this->model;
|
|
}
|
|
}
|