@@ 86-102 (lines=17) @@ | ||
83 | * @param RequestInterface $request |
|
84 | * @return CancellablePromiseInterface |
|
85 | */ |
|
86 | public function pre( |
|
87 | RequestInterface $request |
|
88 | ): CancellablePromiseInterface { |
|
89 | $promise = resolve($request); |
|
90 | ||
91 | $middlewares = $this->middlewares; |
|
92 | $middlewares = $this->orderMiddlewares('pre', ...$middlewares); |
|
93 | ||
94 | foreach ($middlewares as $middleware) { |
|
95 | $requestMiddleware = $middleware; |
|
96 | $promise = $promise->then(function (RequestInterface $request) use ($requestMiddleware) { |
|
97 | return $requestMiddleware->pre($request, $this->options, $this->id); |
|
98 | }); |
|
99 | } |
|
100 | ||
101 | return $promise; |
|
102 | } |
|
103 | ||
104 | /** |
|
105 | * @param ResponseInterface $response |
|
@@ 108-124 (lines=17) @@ | ||
105 | * @param ResponseInterface $response |
|
106 | * @return CancellablePromiseInterface |
|
107 | */ |
|
108 | public function post( |
|
109 | ResponseInterface $response |
|
110 | ): CancellablePromiseInterface { |
|
111 | $promise = resolve($response); |
|
112 | ||
113 | $middlewares = $this->middlewares; |
|
114 | $middlewares = $this->orderMiddlewares('post', ...$middlewares); |
|
115 | ||
116 | foreach ($middlewares as $middleware) { |
|
117 | $responseMiddleware = $middleware; |
|
118 | $promise = $promise->then(function (ResponseInterface $response) use ($responseMiddleware) { |
|
119 | return $responseMiddleware->post($response, $this->options, $this->id); |
|
120 | }); |
|
121 | } |
|
122 | ||
123 | return $promise; |
|
124 | } |
|
125 | ||
126 | /** |
|
127 | * @param Throwable $throwable |
|
@@ 130-146 (lines=17) @@ | ||
127 | * @param Throwable $throwable |
|
128 | * @return CancellablePromiseInterface |
|
129 | */ |
|
130 | public function error( |
|
131 | Throwable $throwable |
|
132 | ): CancellablePromiseInterface { |
|
133 | $promise = reject($throwable); |
|
134 | ||
135 | $middlewares = $this->middlewares; |
|
136 | $middlewares = $this->orderMiddlewares('error', ...$middlewares); |
|
137 | ||
138 | foreach ($middlewares as $middleware) { |
|
139 | $errorMiddleware = $middleware; |
|
140 | $promise = $promise->then(null, function (Throwable $throwable) use ($errorMiddleware) { |
|
141 | return reject($errorMiddleware->error($throwable, $this->options, $this->id)); |
|
142 | }); |
|
143 | } |
|
144 | ||
145 | return $promise; |
|
146 | } |
|
147 | } |
|
148 |