@@ -112,52 +112,64 @@ private function sendRequest($verb, $path, $body = null)
112112 */
113113 public function process ()
114114 {
115- $ requests = $ this ->listRequests (['status ' => 'pending ' ]);
115+ foreach ($ this ->listRequests (['status ' => 'pending ' ]) as $ request ) {
116+ $ this ->dispatch ($ request );
117+ }
118+ }
116119
117- foreach ($ requests as $ request ) {
120+ /**
121+ * @param Request $request
122+ * @return string
123+ * @throws \GuzzleHttp\Exception\GuzzleException
124+ */
125+ protected function dispatch ($ request )
126+ {
127+ try {
118128
119129 if ($ this ->config ->products && !in_array ($ request ->asset ->product ->id , $ this ->config ->products )) {
120- continue ;
130+ return ' Invalid product ' ;
121131 }
122132
123- if ($ request ->status == 'pending ' ) { // actually default filter is pending
124- $ processingResult = 'unknown ' ;
125- try {
126- $ this ->logger ->info ("Starting processing of request ID= " . $ request ->id );
127-
128- /** @noinspection PhpVoidFunctionResultUsedInspection */
129- $ msg = $ this ->processRequest ($ request );
130- if (!$ msg || is_string ($ msg )) {
131- $ msg = new ActivationTileResponse ($ msg );
132- }
133-
134- if ($ msg instanceof ActivationTemplateResponse) {
135- $ this ->sendRequest ('POST ' , '/requests/ ' . $ request ->id . '/approve ' ,
136- '{"template_id": " ' . $ msg ->templateid . '"} ' );
137- $ processingResult = 'succeed (Activated using template ' . $ msg ->templateid . ') ' ;
138- } else {
139- $ this ->sendRequest ('POST ' , '/requests/ ' . $ request ->id . '/approve ' ,
140- '{"activation_tile": " ' . $ msg ->activationTile . '"} ' );
141- $ processingResult = 'succeed ( ' . $ msg ->activationTile . ') ' ;
142- }
143-
144- } catch (Inquire $ e ) {
145- // update parameters and move to inquire
146- $ this ->updateParameters ($ request , $ e ->params );
147- $ this ->sendRequest ('POST ' , '/requests/ ' . $ request ->id . '/inquire ' , '{} ' );
148- $ processingResult = 'inquire ' ;
149- } catch (Fail $ e ) {
150- // fail request
151- $ this ->sendRequest ('POST ' , '/requests/ ' . $ request ->id . '/fail ' ,
152- '{"reason": " ' . $ e ->getMessage () . '"} ' );
153- $ processingResult = 'fail ' ;
154- } catch (Skip $ e ) {
155- $ processingResult = 'skip ' ;
156- }
133+ $ processingResult = 'unknown ' ;
134+
135+ $ this ->logger ->info ("Starting processing of request ID= " . $ request ->id );
136+
137+ /** @noinspection PhpVoidFunctionResultUsedInspection */
138+ $ msg = $ this ->processRequest ($ request );
139+ if (!$ msg || is_string ($ msg )) {
140+ $ msg = new ActivationTileResponse ($ msg );
141+ }
157142
158- $ this ->logger ->info ("Finished processing of request ID= " . $ request ->id . " result= " . $ processingResult );
143+ if ($ msg instanceof ActivationTemplateResponse) {
144+ $ this ->sendRequest ('POST ' , '/requests/ ' . $ request ->id . '/approve ' ,
145+ '{"template_id": " ' . $ msg ->templateid . '"} ' );
146+ $ processingResult = 'succeed (Activated using template ' . $ msg ->templateid . ') ' ;
147+ } else {
148+ $ this ->sendRequest ('POST ' , '/requests/ ' . $ request ->id . '/approve ' ,
149+ '{"activation_tile": " ' . $ msg ->activationTile . '"} ' );
150+ $ processingResult = 'succeed ( ' . $ msg ->activationTile . ') ' ;
159151 }
152+
153+ } catch (Inquire $ e ) {
154+ // update parameters and move to inquire
155+ $ this ->updateParameters ($ request , $ e ->params );
156+ $ this ->sendRequest ('POST ' , '/requests/ ' . $ request ->id . '/inquire ' , '{} ' );
157+ $ processingResult = 'inquire ' ;
158+
159+ } catch (Fail $ e ) {
160+ // fail request
161+ $ this ->sendRequest ('POST ' , '/requests/ ' . $ request ->id . '/fail ' ,
162+ '{"reason": " ' . $ e ->getMessage () . '"} ' );
163+ $ processingResult = 'fail ' ;
164+
165+ } catch (Skip $ e ) {
166+ $ processingResult = 'skip ' ;
167+
160168 }
169+
170+ $ this ->logger ->info ("Finished processing of request ID= " . $ request ->id . " result= " . $ processingResult );
171+
172+ return $ processingResult ;
161173 }
162174
163175 /**
@@ -183,7 +195,14 @@ public function listRequests(array $filters = null)
183195 }
184196
185197 $ body = $ this ->sendRequest ('GET ' , '/requests ' . $ query );
186- return Model::modelize ('requests ' , json_decode ($ body ));
198+
199+ /** @var Request[] $models */
200+ $ models = Model::modelize ('requests ' , json_decode ($ body ));
201+ foreach ($ models as $ index => $ model ) {
202+ $ models [$ index ]->requestProcessor = $ this ;
203+ }
204+
205+ return $ models ;
187206 }
188207
189208 /**
0 commit comments