/** * @inheritdoc */ public function parse(Exception $e) { if ($e instanceof JsonApiException) { $errors = $e->getErrors(); $httpCode = $e->getHttpCode(); } else { $errors = $this->getErrors($e); $httpCode = $this->getDefaultHttpCode($e); } $errors = Errors::cast($errors); /** @var MutableErrorInterface $error */ foreach ($errors as $error) { $this->assignId($error, $e); } return new ErrorResponse($errors, $httpCode, $this->getHeaders($e)); }
/** * @inheritdoc */ public function getHttpCode() { return $this->errors->getHttpStatus($this->defaultHttpCode); }
/** * @inheritdoc */ public function relationshipNotAcceptable(ResourceIdentifierInterface $identifier, $relationshipKey = null, $error = null) { $base = $this->repository->errorWithPointer(self::RELATIONSHIP_NOT_ACCEPTABLE, $relationshipKey ? P::relationship($relationshipKey) : P::data(), ['type' => $identifier->getType(), 'id' => $identifier->getId()]); $errors = new MutableErrorCollection(); /** @var MutableErrorInterface $err */ foreach (MutableErrorCollection::cast($error ?: $base) as $err) { $add = clone $base; $errors->add($add->merge($err)); } return $errors; }
/** * ValidationException constructor. * @param ErrorInterface|ErrorInterface[]|ErrorCollection $errors * @param string|int|null $defaultHttpCode * @param Exception|null $previous */ public function __construct($errors, $defaultHttpCode = self::DEFAULT_HTTP_CODE, Exception $previous = null) { $errors = MutableErrorCollection::cast($errors); parent::__construct($errors, $errors->getHttpStatus($defaultHttpCode), $previous); }
public function testCastArray() { $arr = [new Error(null, null, 500)]; $expected = new MutableErrorCollection($arr); $this->assertEquals($expected, MutableErrorCollection::cast($arr)); }