MiddlewareManagement   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Test Coverage

Coverage 76.47%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 72
ccs 13
cts 17
cp 0.7647
rs 10
wmc 8

3 Methods

Rating   Name   Duplication   Size   Complexity  
A processBefore() 0 7 1
A processMiddleware() 0 26 6
A processAfter() 0 6 1
1
<?php
2
3
namespace ByJG\RestServer\Middleware;
4
5
use ByJG\RestServer\HttpRequest;
6
use ByJG\RestServer\HttpResponse;
7
8
class MiddlewareManagement
9
{
10
    /**
11
     * Undocumented function
12
     *
13
     * @param mixed $middlewareList
14
     * @param mixed $dispatcherStatus
15
     * @param HttpResponse $response
16
     * @param HttpRequest $request
17
     * @return MiddlewareResult
18
     */
19 12
    public static function processBefore(
20
        $middlewareList,
21
        $dispatcherStatus,
22
        HttpResponse $response,
23
        HttpRequest $request
24
    ) {
25 12
        return self::processMiddleware($middlewareList, $dispatcherStatus, $response, $request);
26
    }
27
28
29
    /**
30
     * Undocumented function
31
     *
32
     * @param mixed $middlewareList
33
     * @param HttpResponse $response
34
     * @param HttpRequest $request
35
     * @return MiddlewareResult
36
     */
37
    public static function processAfter(
38
        $middlewareList,
39
        HttpResponse $response,
40
        HttpRequest $request
41
    ) {
42
        return self::processMiddleware($middlewareList, null, $response, $request);
43
    }
44
45
    /**
46
     * Undocumented function
47
     *
48
     * @param mixed $middlewareList
49
     * @param mixed $dispatcherStatus
50
     * @param HttpResponse $response
51
     * @param HttpRequest $request
52
     * @return MiddlewareResult
53
     */
54 12
    protected static function processMiddleware(
55
        $middlewareList,
56
        $dispatcherStatus,
57
        HttpResponse $response,
58
        HttpRequest $request
59
    ) {
60 12
        $continue = MiddlewareResult::continue();
61
62 12
        if (empty($middlewareList)) {
63 6
            return $continue;
64
        }
65
66 6
        foreach ($middlewareList as $middleWare) {
67 6
            if (!is_null($dispatcherStatus)) {
68 6
                $result = $middleWare->beforeProcess($dispatcherStatus, $response, $request);
69
            } else {
70
                $result = $middleWare->afterProcess($response, $request);
71
            }
72
            
73 4
            if ($result->getStatus() === MiddlewareResult::STOP_PROCESSING_OTHERS) {
74 2
                return $result;
75 2
            } elseif ($result->getStatus() === MiddlewareResult::STOP_PROCESSING) {
76
                $continue = $result;
77
            }
78
        }
79 2
        return $continue;
80
    }
81
}
82