Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
MaintenanceMiddleware
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 1
 process
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3declare(strict_types=1);
4
5namespace BO\Zmscitizenapi\Middleware;
6
7use BO\Zmscitizenapi\Utils\ErrorMessages;
8use Psr\Http\Message\ResponseInterface;
9use Psr\Http\Message\ServerRequestInterface;
10use Psr\Http\Server\MiddlewareInterface;
11use Psr\Http\Server\RequestHandlerInterface;
12
13class MaintenanceMiddleware implements MiddlewareInterface
14{
15    private const HTTP_UNAVAILABLE = 503;
16    private const ERROR_UNAVAILABLE = 'serviceUnavailable';
17    #[\Override]
18    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
19    {
20        if (\App::MAINTENANCE_MODE_ENABLED) {
21            $error = ErrorMessages::get(self::ERROR_UNAVAILABLE);
22
23            $response = \App::$slim->getResponseFactory()->createResponse();
24            $response = $response->withStatus(self::HTTP_UNAVAILABLE)
25                ->withHeader('Content-Type', 'application/json; charset=utf-8');
26
27            $responseBody = json_encode([
28                'errors' => [$error]
29            ]);
30            $response->getBody()->write($responseBody);
31            return $response;
32        }
33
34        return $handler->handle($request);
35    }
36}