Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 12
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 / 12
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 / 12
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\Localization\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    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}