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