original_string: protected function cleanDuplicates($data, $service, $resource)
      {
          $cleaned = [];
          if (!empty($data)) {
              $rSeg = explode('/', $resource);
              $api = $service . '/' . $resource;
  
              switch ($api) {
                  case 'system/admin':
                  case 'system/user':
                      $key = 'email';
                      break;
                  case 'system/cors':
                      $key = 'path';
                      break;
                  case $service . '/_table/' . array_get($rSeg, 1);
                      $key = 'id';
                      break;
                  default:
                      $key = 'name';
              }
  
              foreach ($data as $rec) {
                  if (isset($rec[$key])) {
                      $value = array_get($rec, $key);
                      if (!$this->isDuplicate($service, $resource, array_get($rec, $key), $key)) {
                          $cleaned[] = $rec;
                      } elseif ($this->overwriteExisting === true) {
                          try {
                              if (true === static::patchExisting($service, $resource, $rec, $key)) {
                                  $this->overwrote = true;
                                  $this->log(
                                      'notice',
                                      'Overwrote duplicate found for ' . $api . ' with ' . $key . ' ' . $value
                                  );
                              }
                          } catch (RestException $e) {
                              $this->throwExceptions(
                                  $e,
                                  'An unexpected error occurred. ' .
                                  'Could not overwrite an existing ' .
                                  $api . ' resource with ' . $key . ' ' .
                                  $value . '. It could be due to your existing resource being exactly ' .
                                  'same as your overwriting resource. Try deleting your existing resource and re-import.'
                              );
                          }
                      } else {
                          $this->log(
                              'notice',
                              'Ignored duplicate found for ' .
                              $api .
                              ' with ' . $key .
                              ' ' . $value
                          );
                      }
                  } else {
                      $cleaned[] = $rec;
                      $this->log(
                          'warning',
                          'Skipped duplicate check for ' .
                          $api .
                          ' by key/field ' . $key .
                          '. Key/Field is not set'
                      );
                  }
              }
          }
  
          return $cleaned;
      }
code: protected function cleanDuplicates($data, $service, $resource)
      {
          $cleaned = [];
          if (!empty($data)) {
              $rSeg = explode('/', $resource);
              $api = $service . '/' . $resource;
  
              switch ($api) {
                  case 'system/admin':
                  case 'system/user':
                      $key = 'email';
                      break;
                  case 'system/cors':
                      $key = 'path';
                      break;
                  case $service . '/_table/' . array_get($rSeg, 1);
                      $key = 'id';
                      break;
                  default:
                      $key = 'name';
              }
  
              foreach ($data as $rec) {
                  if (isset($rec[$key])) {
                      $value = array_get($rec, $key);
                      if (!$this->isDuplicate($service, $resource, array_get($rec, $key), $key)) {
                          $cleaned[] = $rec;
                      } elseif ($this->overwriteExisting === true) {
                          try {
                              if (true === static::patchExisting($service, $resource, $rec, $key)) {
                                  $this->overwrote = true;
                                  $this->log(
                                      'notice',
                                      'Overwrote duplicate found for ' . $api . ' with ' . $key . ' ' . $value
                                  );
                              }
                          } catch (RestException $e) {
                              $this->throwExceptions(
                                  $e,
                                  'An unexpected error occurred. ' .
                                  'Could not overwrite an existing ' .
                                  $api . ' resource with ' . $key . ' ' .
                                  $value . '. It could be due to your existing resource being exactly ' .
                                  'same as your overwriting resource. Try deleting your existing resource and re-import.'
                              );
                          }
                      } else {
                          $this->log(
                              'notice',
                              'Ignored duplicate found for ' .
                              $api .
                              ' with ' . $key .
                              ' ' . $value
                          );
                      }
                  } else {
                      $cleaned[] = $rec;
                      $this->log(
                          'warning',
                          'Skipped duplicate check for ' .
                          $api .
                          ' by key/field ' . $key .
                          '. Key/Field is not set'
                      );
                  }
              }
          }
  
          return $cleaned;
      }
code_tokens: protected function cleanDuplicates ( $ data , $ service , $ resource ) { $ cleaned = [ ] ; if ( ! empty ( $ data ) ) { $ rSeg = explode ( '/' , $ resource ) ; $ api = $ service . '/' . $ resource ; switch ( $ api ) { case 'system/admin' : case 'system/user' : $ key = 'email' ; break ; case 'system/cors' : $ key = 'path' ; break ; case $ service . '/_table/' . array_get ( $ rSeg , 1 ) ; $ key = 'id' ; break ; default : $ key = 'name' ; } foreach ( $ data as $ rec ) { if ( isset ( $ rec [ $ key ] ) ) { $ value = array_get ( $ rec , $ key ) ; if ( ! $ this -> isDuplicate ( $ service , $ resource , array_get ( $ rec , $ key ) , $ key ) ) { $ cleaned [ ] = $ rec ; } elseif ( $ this -> overwriteExisting === true ) { try { if ( true === static :: patchExisting ( $ service , $ resource , $ rec , $ key ) ) { $ this -> overwrote = true ; $ this -> log ( 'notice' , 'Overwrote duplicate found for ' . $ api . ' with ' . $ key . ' ' . $ value ) ; } } catch ( RestException $ e ) { $ this -> throwExceptions ( $ e , 'An unexpected error occurred. ' . 'Could not overwrite an existing ' . $ api . ' resource with ' . $ key . ' ' . $ value . '. It could be due to your existing resource being exactly ' . 'same as your overwriting resource. Try deleting your existing resource and re-import.' ) ; } } else { $ this -> log ( 'notice' , 'Ignored duplicate found for ' . $ api . ' with ' . $ key . ' ' . $ value ) ; } } else { $ cleaned [ ] = $ rec ; $ this -> log ( 'warning' , 'Skipped duplicate check for ' . $ api . ' by key/field ' . $ key . '. Key/Field is not set' ) ; } } } return $ cleaned ; }
docstring: Removes records from packaged resource that already exists
  in the target instance.
  
  @param $data
  @param $service
  @param $resource
  
  @return array
  @throws \DreamFactory\Core\Exceptions\ForbiddenException
  @throws \DreamFactory\Core\Exceptions\InternalServerErrorException
  @throws \DreamFactory\Core\Exceptions\RestException
docstring_tokens: Removes records from packaged resource that already exists in the target instance .