0 follower

Final Class Yiisoft\Yii\Debug\Api\Debug\Middleware\ResponseDataWrapper

InheritanceYiisoft\Yii\Debug\Api\Debug\Middleware\ResponseDataWrapper
ImplementsPsr\Http\Server\MiddlewareInterface

Method Details

Hide inherited methods

__construct() public method

public __construct( \Yiisoft\DataResponse\DataResponseFactoryInterface $responseFactory, \Yiisoft\Router\CurrentRoute $currentRoute ): mixed
$responseFactory \Yiisoft\DataResponse\DataResponseFactoryInterface
$currentRoute \Yiisoft\Router\CurrentRoute

                public function __construct(private DataResponseFactoryInterface $responseFactory, private CurrentRoute $currentRoute)
{
}

            
process() public method

public process( \Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Server\RequestHandlerInterface $handler ): \Psr\Http\Message\ResponseInterface
$request \Psr\Http\Message\ServerRequestInterface
$handler \Psr\Http\Server\RequestHandlerInterface

                public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
    $data = [
        'id' => $this->currentRoute->getArgument('id'),
        'data' => null,
        'error' => null,
        'success' => true,
    ];
    try {
        $response = $handler->handle($request);
        if (!$response instanceof DataResponse) {
            return $response;
        }
        $data['data'] = $response->getData();
        $status = $response->getStatusCode();
        if ($status >= 400) {
            $data['success'] = false;
        }
    } catch (NotFoundException $exception) {
        $data['success'] = false;
        $data['error'] = $exception->getMessage();
        $status = Status::NOT_FOUND;
    }
    return $this->responseFactory->createResponse($data, $status);
}