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