Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
1.3 kB
1
Indexable
Never
public function __invoke(int $orderId): JsonResponse
    {
        try {
            $this->handle(new AddOrderIssuanceRestrictionCommand($orderId));

            return $this->responseFactory->okResponse();
        } catch (HandlerFailedException $e) {
            $prevException = $e->getPrevious();
            if ($prevException instanceof CannotAddOrderIssuanceRestrictionException) {
                if ($prevException->orderNumber)
                {
                    return $this->responseFactory->error(
                        errorContent: new ErrorContent(
                            sprintf('Для заказа %s уже установлен признак запрета выдачи.',
                                $prevException->orderNumber->toString()),
                            Response::HTTP_BAD_REQUEST
                        ),
                    );
                }
                return $this->responseFactory->error(
                    errorContent: new ErrorContent(
                        'Нельзя добавить ограничение выдачи, потому что задание на самовывоз в работе',
                        Response::HTTP_BAD_REQUEST
                    ),
                );
            }
            throw $e;
        }
    }