PluginProbe
seQura / 4.3.0
seQura v4.3.0
4.3.4 4.3.3 4.3.2 4.3.1 trunk 2.0.0 2.0.10 2.0.11 2.0.12 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 3.0.0 3.0.2 3.0.5 3.0.6 3.0.7 3.1.0 3.1.1 3.2.0 3.2.1 3.2.2 4.0.0 All 30 releases
← All changes | src/Controllers/Rest/class-general-settings-rest-controller.php +126 -161 4.0.04.3.0 View file →
@@ -10,8 +10,9 @@
10 10
11 11 use SeQura\Core\BusinessLogic\AdminAPI\AdminAPI;
12 12 use SeQura\Core\BusinessLogic\AdminAPI\GeneralSettings\Requests\GeneralSettingsRequest;
13 13 use SeQura\Core\BusinessLogic\AdminAPI\OrderStatusSettings\Requests\OrderStatusSettingsRequest;
14 +use SeQura\Core\BusinessLogic\AdminAPI\Response\Response;
14 15 use SeQura\Core\BusinessLogic\Domain\GeneralSettings\Models\GeneralSettings;
15 16 use SeQura\Core\BusinessLogic\Domain\Multistore\StoreContext;
16 17 use SeQura\Core\BusinessLogic\Domain\Order\OrderStates;
17 18 use SeQura\WC\Services\Log\Interface_Logger_Service;
@@ -108,19 +109,14 @@
108 109 *
109 110 * @return WP_REST_Response|WP_Error
110 111 */
111 112 public function get_current_store() {
112 - $response = null;
113 - try {
114 - $response = AdminAPI::get()
115 - ->store( $this->store_context->getStoreId() )
116 - ->getCurrentStore()
117 - ->toArray();
118 - } catch ( \Throwable $e ) {
119 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
120 - $response = new WP_Error( 'error', $e->getMessage() );
121 - }
122 - return \rest_ensure_response( $response );
113 + /**
114 + * Response
115 + *
116 + * @var Response $response */
117 + $response = AdminAPI::get()->store( $this->store_context->getStoreId() )->getCurrentStore();
118 + return $this->build_response( $response );
123 119 }
124 120
125 121 /**
126 122 * GET version.
@@ -129,19 +125,16 @@
129 125 *
130 126 * @return WP_REST_Response|WP_Error
131 127 */
132 128 public function get_version( WP_REST_Request $request ) {
133 - $response = null;
134 - try {
135 - $response = AdminAPI::get()
136 - ->integration( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
137 - ->getVersion()
138 - ->toArray();
139 - } catch ( \Throwable $e ) {
140 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
141 - $response = new WP_Error( 'error', $e->getMessage() );
142 - }
143 - return \rest_ensure_response( $response );
129 + /**
130 + * Response
131 + *
132 + * @var Response $response */
133 + $response = AdminAPI::get()
134 + ->integration( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
135 + ->getVersion();
136 + return $this->build_response( $response );
144 137 }
145 138
146 139 /**
147 140 * GET stores.
@@ -150,19 +143,16 @@
150 143 *
151 144 * @return WP_REST_Response|WP_Error
152 145 */
153 146 public function get_stores( WP_REST_Request $request ) {
154 - $response = null;
155 - try {
156 - $response = AdminAPI::get()
157 - ->store( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
158 - ->getStores()
159 - ->toArray();
160 - } catch ( \Throwable $e ) {
161 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
162 - $response = new WP_Error( 'error', $e->getMessage() );
163 - }
164 - return \rest_ensure_response( $response );
147 + /**
148 + * Response
149 + *
150 + * @var Response $response */
151 + $response = AdminAPI::get()
152 + ->store( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
153 + ->getStores();
154 + return $this->build_response( $response );
165 155 }
166 156
167 157 /**
168 158 * GET state.
@@ -171,19 +161,16 @@
171 161 *
172 162 * @return WP_REST_Response|WP_Error
173 163 */
174 164 public function get_state( WP_REST_Request $request ) {
175 - $response = null;
176 - try {
177 - $response = AdminAPI::get()
178 - ->integration( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
179 - ->getUIState( true ) // Pass false if the Onboarding does not configure widgets.
180 - ->toArray();
181 - } catch ( \Throwable $e ) {
182 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
183 - $response = new WP_Error( 'error', $e->getMessage() );
184 - }
185 - return \rest_ensure_response( $response );
165 + /**
166 + * Response
167 + *
168 + * @var Response $response */
169 + $response = AdminAPI::get()
170 + ->integration( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
171 + ->getUIState( true ); // Pass false if the Onboarding does not configure widgets.
172 + return $this->build_response( $response );
186 173 }
187 174
188 175 /**
189 176 * GET general settings.
@@ -192,19 +179,16 @@
192 179 *
193 180 * @return WP_REST_Response|WP_Error
194 181 */
195 182 public function get_general( WP_REST_Request $request ) {
196 - $response = null;
197 - try {
198 - $response = AdminAPI::get()
199 - ->generalSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
200 - ->getGeneralSettings()
201 - ->toArray();
202 - } catch ( \Throwable $e ) {
203 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
204 - $response = new WP_Error( 'error', $e->getMessage() );
205 - }
206 - return \rest_ensure_response( $response );
183 + /**
184 + * Response
185 + *
186 + * @var Response $response */
187 + $response = AdminAPI::get()
188 + ->generalSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
189 + ->getGeneralSettings();
190 + return $this->build_response( $response );
207 191 }
208 192
209 193 /**
210 194 * GET general settings.
@@ -213,19 +197,16 @@
213 197 *
214 198 * @return WP_REST_Response|WP_Error
215 199 */
216 200 public function get_shop_name( WP_REST_Request $request ) {
217 - $response = null;
218 - try {
219 - $response = AdminAPI::get()
220 - ->integration( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
221 - ->getShopName()
222 - ->toArray();
223 - } catch ( \Throwable $e ) {
224 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
225 - $response = new WP_Error( 'error', $e->getMessage() );
226 - }
227 - return \rest_ensure_response( $response );
201 + /**
202 + * Response
203 + *
204 + * @var Response $response */
205 + $response = AdminAPI::get()
206 + ->integration( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
207 + ->getShopName();
208 + return $this->build_response( $response );
228 209 }
229 210
230 211 /**
231 212 * Save general settings.
@@ -235,28 +216,25 @@
235 216 *
236 217 * @return WP_REST_Response|WP_Error
237 218 */
238 219 public function save_general( WP_REST_Request $request ) {
239 - $response = null;
240 - try {
241 - $response = AdminAPI::get()
242 - ->generalSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
243 - ->saveGeneralSettings(
244 - new GeneralSettingsRequest(
245 - (bool) $request->get_param( self::PARAM_SEND_ORDER_REPORTS_PERIODICALLY_TO_SEQURA ),
246 - (bool) $request->get_param( self::PARAM_SHOW_SEQURA_CHECKOUT_AS_HOSTED_PAGE ),
247 - (array) $request->get_param( self::PARAM_ALLOWED_IP_ADDRESSES ),
248 - (array) $request->get_param( self::PARAM_EXCLUDED_PRODUCTS ),
249 - (array) $request->get_param( self::PARAM_EXCLUDED_CATEGORIES ),
250 - strval( $request->get_param( self::PARAM_DEFAULT_SERVICES_END_DATE ) )
251 - )
220 + /**
221 + * Response
222 + *
223 + * @var Response $response */
224 + $response = AdminAPI::get()
225 + ->generalSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
226 + ->saveGeneralSettings(
227 + new GeneralSettingsRequest(
228 + (bool) $request->get_param( self::PARAM_SEND_ORDER_REPORTS_PERIODICALLY_TO_SEQURA ),
229 + (bool) $request->get_param( self::PARAM_SHOW_SEQURA_CHECKOUT_AS_HOSTED_PAGE ),
230 + (array) $request->get_param( self::PARAM_ALLOWED_IP_ADDRESSES ),
231 + (array) $request->get_param( self::PARAM_EXCLUDED_PRODUCTS ),
232 + (array) $request->get_param( self::PARAM_EXCLUDED_CATEGORIES ),
233 + strval( $request->get_param( self::PARAM_DEFAULT_SERVICES_END_DATE ) )
252 234 )
253 - ->toArray();
254 - } catch ( \Throwable $e ) {
255 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
256 - $response = new WP_Error( 'error', $e->getMessage() );
257 - }
258 - return \rest_ensure_response( $response );
235 + );
236 + return $this->build_response( $response );
259 237 }
260 238
261 239 /**
262 240 * GET shop categories.
@@ -265,19 +243,16 @@
265 243 *
266 244 * @return WP_REST_Response|WP_Error
267 245 */
268 246 public function get_shop_categories( WP_REST_Request $request ) {
269 - $response = null;
270 - try {
271 - $response = AdminAPI::get()
272 - ->generalSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
273 - ->getShopCategories()
274 - ->toArray();
275 - } catch ( \Throwable $e ) {
276 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
277 - $response = new WP_Error( 'error', $e->getMessage() );
278 - }
279 - return \rest_ensure_response( $response );
247 + /**
248 + * Response
249 + *
250 + * @var Response $response */
251 + $response = AdminAPI::get()
252 + ->generalSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
253 + ->getShopCategories();
254 + return $this->build_response( $response );
280 255 }
281 256
282 257 /**
283 258 * GET Order Status List.
@@ -286,19 +261,16 @@
286 261 *
287 262 * @return WP_REST_Response|WP_Error
288 263 */
289 264 public function get_list_order_status( WP_REST_Request $request ) {
290 - $response = null;
291 - try {
292 - $response = AdminAPI::get()
293 - ->orderStatusSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
294 - ->getShopOrderStatuses()
295 - ->toArray();
296 - } catch ( \Throwable $e ) {
297 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
298 - $response = new WP_Error( 'error', $e->getMessage() );
299 - }
300 - return \rest_ensure_response( $response );
265 + /**
266 + * Response
267 + *
268 + * @var Response $response */
269 + $response = AdminAPI::get()
270 + ->orderStatusSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
271 + ->getShopOrderStatuses();
272 + return $this->build_response( $response );
301 273 }
302 274
303 275 /**
304 276 * GET Order Status settings.
@@ -307,19 +279,16 @@
307 279 *
308 280 * @return WP_REST_Response|WP_Error
309 281 */
310 282 public function get_order_status( WP_REST_Request $request ) {
311 - $response = null;
312 - try {
313 - $response = AdminAPI::get()
314 - ->orderStatusSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
315 - ->getOrderStatusSettings()
316 - ->toArray();
317 - } catch ( \Throwable $e ) {
318 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
319 - $response = new WP_Error( 'error', $e->getMessage() );
320 - }
321 - return \rest_ensure_response( $response );
283 + /**
284 + * Response
285 + *
286 + * @var Response $response */
287 + $response = AdminAPI::get()
288 + ->orderStatusSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
289 + ->getOrderStatusSettings();
290 + return $this->build_response( $response );
322 291 }
323 292
324 293 /**
325 294 * POST Order Status settings.
@@ -331,28 +300,21 @@
331 300 public function save_order_status( WP_REST_Request $request ) {
332 301 if ( ! $this->validate_order_status( $request ) ) {
333 302 return new WP_REST_Response( 'Invalid data', 400 );
334 303 }
335 -
336 - $response = null;
337 - try {
338 -
339 - /**
340 - * Order status mappings.
341 - *
342 - * @var array<string> $order_status_mappings
343 - */
344 - $order_status_mappings = (array) json_decode( $request->get_body(), true );
345 -
346 - $response = AdminAPI::get()
347 - ->orderStatusSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
348 - ->saveOrderStatusSettings( new OrderStatusSettingsRequest( $order_status_mappings ) )
349 - ->toArray();
350 - } catch ( \Throwable $e ) {
351 - $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
352 - $response = new WP_Error( 'error', $e->getMessage() );
353 - }
354 - return \rest_ensure_response( $response );
304 + /**
305 + * Order status mappings.
306 + *
307 + * @var array<string> $order_status_mappings */
308 + $order_status_mappings = (array) json_decode( $request->get_body(), true );
309 + /**
310 + * Response
311 + *
312 + * @var Response $response */
313 + $response = AdminAPI::get()
314 + ->orderStatusSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
315 + ->saveOrderStatusSettings( new OrderStatusSettingsRequest( $order_status_mappings ) );
316 + return $this->build_response( $response );
355 317 }
356 318
357 319 /**
358 320 * Validate if the parameter is a boolean.
@@ -399,33 +361,36 @@
399 361 *
400 362 * @param WP_REST_Request $request The request.
401 363 */
402 364 public function validate_order_status( WP_REST_Request $request ): bool {
403 - try {
404 - $data = json_decode( $request->get_body(), true );
405 - if ( ! is_array( $data ) ) {
365 + $data = json_decode( $request->get_body(), true );
366 + if ( ! is_array( $data ) ) {
367 + return false;
368 + }
369 + /**
370 + * Response
371 + *
372 + * @var Response $response */
373 + $response = AdminAPI::get()
374 + ->orderStatusSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
375 + ->getShopOrderStatuses();
376 +
377 + if ( ! $response->isSuccessful() ) {
378 + return false;
379 + }
380 + $allowed_shop_statuses = array_column( $response->toArray(), 'id' );
381 + $allowed_sequra_statuses = OrderStates::toArray();
382 +
383 + foreach ( $data as $status_map ) {
384 + if ( ! isset( $status_map['sequraStatus'] )
385 + || ! isset( $status_map['shopStatus'] )
386 + || ! is_string( $status_map['sequraStatus'] )
387 + || ! is_string( $status_map['shopStatus'] )
388 + || ! in_array( $status_map['sequraStatus'], $allowed_sequra_statuses, true )
389 + || ! in_array( $status_map['shopStatus'], $allowed_shop_statuses, true )
390 + ) {
406 391 return false;
407 392 }
408 - $allowed_shop_statuses = AdminAPI::get()
409 - ->orderStatusSettings( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
410 - ->getShopOrderStatuses()
411 - ->toArray();
412 - $allowed_shop_statuses = array_column( $allowed_shop_statuses, 'id' );
413 - $allowed_sequra_statuses = OrderStates::toArray();
414 -
415 - foreach ( $data as $status_map ) {
416 - if ( ! isset( $status_map['sequraStatus'] )
417 - || ! isset( $status_map['shopStatus'] )
418 - || ! is_string( $status_map['sequraStatus'] )
419 - || ! is_string( $status_map['shopStatus'] )
420 - || ! in_array( $status_map['sequraStatus'], $allowed_sequra_statuses, true )
421 - || ! in_array( $status_map['shopStatus'], $allowed_shop_statuses, true )
422 - ) {
423 - return false;
424 - }
425 - }
426 - } catch ( \Throwable $e ) {
427 - return false;
428 393 }
429 394 return true;
430 395 }
431 396