@@ 54-70 (lines=17) @@ | ||
51 | * @param RequestInterface $request |
|
52 | * @return CancellablePromiseInterface |
|
53 | */ |
|
54 | public function pre( |
|
55 | RequestInterface $request |
|
56 | ): CancellablePromiseInterface { |
|
57 | $promise = resolve($request); |
|
58 | ||
59 | $middlewares = $this->middlewares; |
|
60 | $middlewares = $this->orderMiddlewares('pre', ...$middlewares); |
|
61 | ||
62 | foreach ($middlewares as $middleware) { |
|
63 | $requestMiddleware = $middleware; |
|
64 | $promise = $promise->then(function (RequestInterface $request) use ($requestMiddleware) { |
|
65 | return $requestMiddleware->pre($request, $this->options, $this->id); |
|
66 | }); |
|
67 | } |
|
68 | ||
69 | return $promise; |
|
70 | } |
|
71 | ||
72 | /** |
|
73 | * @param ResponseInterface $response |
|
@@ 76-92 (lines=17) @@ | ||
73 | * @param ResponseInterface $response |
|
74 | * @return CancellablePromiseInterface |
|
75 | */ |
|
76 | public function post( |
|
77 | ResponseInterface $response |
|
78 | ): CancellablePromiseInterface { |
|
79 | $promise = resolve($response); |
|
80 | ||
81 | $middlewares = $this->middlewares; |
|
82 | $middlewares = $this->orderMiddlewares('post', ...$middlewares); |
|
83 | ||
84 | foreach ($middlewares as $middleware) { |
|
85 | $responseMiddleware = $middleware; |
|
86 | $promise = $promise->then(function (ResponseInterface $response) use ($responseMiddleware) { |
|
87 | return $responseMiddleware->post($response, $this->options, $this->id); |
|
88 | }); |
|
89 | } |
|
90 | ||
91 | return $promise; |
|
92 | } |
|
93 | ||
94 | /** |
|
95 | * @param Throwable $throwable |
|
@@ 98-114 (lines=17) @@ | ||
95 | * @param Throwable $throwable |
|
96 | * @return CancellablePromiseInterface |
|
97 | */ |
|
98 | public function error( |
|
99 | Throwable $throwable |
|
100 | ): CancellablePromiseInterface { |
|
101 | $promise = reject($throwable); |
|
102 | ||
103 | $middlewares = $this->middlewares; |
|
104 | $middlewares = $this->orderMiddlewares('error', ...$middlewares); |
|
105 | ||
106 | foreach ($middlewares as $middleware) { |
|
107 | $errorMiddleware = $middleware; |
|
108 | $promise = $promise->then(null, function (Throwable $throwable) use ($errorMiddleware) { |
|
109 | return reject($errorMiddleware->error($throwable, $this->options, $this->id)); |
|
110 | }); |
|
111 | } |
|
112 | ||
113 | return $promise; |
|
114 | } |
|
115 | ||
116 | /** |
|
117 | * Sort the middlewares by priority. |