Code Duplication    Length = 17-21 lines in 4 locations

core/libraries/rest_api/ModelDataTranslator.php 4 locations

@@ 416-432 (lines=17) @@
413
            }
414
            if ($field instanceof EE_Model_Field_Base) {
415
                if (! $writing && is_array($query_param_value)) {
416
                    if (! \EEH_Array::is_array_numerically_and_sequentially_indexed($query_param_value)) {
417
                        if (defined('EE_REST_API_DEBUG_MODE') && EE_REST_API_DEBUG_MODE) {
418
                            throw new RestException(
419
                                'numerically_indexed_array_of_values_only',
420
                                sprintf(
421
                                    esc_html__(
422
                                        'The array provided for the parameter "%1$s" should be numerically indexed.',
423
                                        'event_espresso'
424
                                    ),
425
                                    $query_param_key
426
                                ),
427
                                array(
428
                                    'status' => 400,
429
                                )
430
                            );
431
                        }
432
                    }
433
                    //did they specify an operator?
434
                    if (isset($query_param_value[0])
435
                        && isset($valid_operators[$query_param_value[0]])
@@ 496-514 (lines=19) @@
493
                                $requested_version,
494
                                $timezone
495
                            );
496
                        } else {
497
                            //so they provided a valid operator, but wrong number of arguments
498
                            if (defined('EE_REST_API_DEBUG_MODE') && EE_REST_API_DEBUG_MODE) {
499
                                throw new RestException(
500
                                    'wrong_number_of_arguments',
501
                                    sprintf(
502
                                        esc_html__(
503
                                            'The operator you provided, "%1$s" had the wrong number of arguments',
504
                                            'event_espresso'
505
                                        ),
506
                                        $op
507
                                    ),
508
                                    array(
509
                                        'status' => 400,
510
                                    )
511
                                );
512
                            }
513
                            $translated_value = null;
514
                        }
515
                    } else {
516
                        //so they didn't provide a valid operator
517
                        if (defined('EE_REST_API_DEBUG_MODE') && EE_REST_API_DEBUG_MODE) {
@@ 515-535 (lines=21) @@
512
                            }
513
                            $translated_value = null;
514
                        }
515
                    } else {
516
                        //so they didn't provide a valid operator
517
                        if (defined('EE_REST_API_DEBUG_MODE') && EE_REST_API_DEBUG_MODE) {
518
                            throw new RestException(
519
                                'invalid_operator',
520
                                sprintf(
521
                                    esc_html__(
522
                                        'You provided an invalid parameter, with key "%1$s" and value "%2$s"',
523
                                        'event_espresso'
524
                                    ),
525
                                    $query_param_key,
526
                                    $query_param_value
527
                                ),
528
                                array(
529
                                    'status' => 400,
530
                                )
531
                            );
532
                        }
533
                        //if we aren't in debug mode, then just try our best to fulfill the user's request
534
                        $translated_value = null;
535
                    }
536
                } else {
537
                    $translated_value = ModelDataTranslator::prepareFieldValueFromJson(
538
                        $field,
@@ 578-594 (lines=17) @@
575
                            $model,
576
                            $requested_version
577
                        );
578
                    } elseif (defined('EE_REST_API_DEBUG_MODE') && EE_REST_API_DEBUG_MODE) {
579
                        //only tell API clients they got it wrong if we're in debug mode
580
                        //otherwise try our best ot fulfill their request by ignoring this invalid data
581
                        throw new RestException(
582
                            'invalid_parameter',
583
                            sprintf(
584
                                esc_html__(
585
                                    'You provided an invalid parameter, with key "%1$s"',
586
                                    'event_espresso'
587
                                ),
588
                                $query_param_sans_stars
589
                            ),
590
                            array(
591
                                'status' => 400,
592
                            )
593
                        );
594
                    }
595
                }
596
            }
597
        }