Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
Authenticate
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
4
100.00% covered (success)
100.00%
1 / 1
 handle
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 redirectTo
n/a
0 / 0
n/a
0 / 0
2
1<?php
2
3namespace App\Http\Middleware;
4
5use App\Lib\Helper;
6use App\Models\Service;
7use Closure;
8use Illuminate\Auth\Middleware\Authenticate as Middleware;
9
10/**
11 * Updated for ApiV2
12 */
13class Authenticate extends Middleware
14{
15    /**
16     * Handle an incoming request.
17     *
18     * @param mixed    $request
19     * @param \Closure $next
20     * @param mixed    ...$guards
21     * @return mixed
22     *
23     * @throws \Illuminate\Auth\AuthenticationException If authentification fails.
24     */
25    public function handle($request, Closure $next, ...$guards)
26    {
27        if (Helper::isRequestForApiV1($request)) {
28            // @codeCoverageIgnoreStart
29            // Use patched v1 Auth mecanism (without bearer reimplementation).
30            $bearerToken = Helper::getBearerTokenFromRequest($request) ?? $request->api_token ?? '';
31            $service     = Service::getFromBearerToken($bearerToken);
32            $request->request->add(['brand_id' => $service->brand->id]);
33            $response = $next($request);
34            // @codeCoverageIgnoreEnd
35        } else {
36            // Use Laravel auth check mecanism.
37            $response = \call_user_func_array(
38                [$this, 'parent::' . __FUNCTION__],
39                array_merge([$request, $next], $guards)
40            );
41        }
42
43        return $response;
44    }
45    /**
46     * Get the path the user should be redirected to when they are not authenticated.
47     *
48     * @param  mixed $request
49     * @return string|null
50     * @codeCoverageIgnore
51     */
52    protected function redirectTo($request)
53    {
54        if (! $request->expectsJson()) {
55            return route('login');
56        }
57    }
58}