Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
83.33% covered (warning)
83.33%
5 / 6
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
InitRequest
83.33% covered (warning)
83.33%
5 / 6
0.00% covered (danger)
0.00%
0 / 1
4.07
0.00% covered (danger)
0.00%
0 / 1
 process
83.33% covered (warning)
83.33%
5 / 6
0.00% covered (danger)
0.00%
0 / 1
4.07
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Middleware;
6
7use Override;
8use Psr\Http\Message\ResponseInterface as Response;
9use Psr\Http\Message\ServerRequestInterface as Request;
10use Psr\Http\Server\MiddlewareInterface as Middleware;
11use Psr\Http\Server\RequestHandlerInterface as Handler;
12
13class InitRequest implements Middleware
14{
15    #[Override]
16    public function process(Request $request, Handler $handler): Response
17    {
18        // See if it's a JSON request
19        if (strtolower($request->getHeaderLine('X-Requested-With')) === 'xmlhttprequest') {
20            $request = $request->withAttribute('isXhr', true);
21        } else {
22            if ($request->hasHeader('Accept') && $request->getHeaderLine('Accept') === 'application/json') {
23                $request = $request->withAttribute('isXhr', true);
24            } else {
25                $request = $request->withAttribute('isXhr', false);
26            }
27        }
28
29        return $handler->handle($request);
30    }
31}