コード例 #1
0
 /**
  * @param Organization $organization
  * @param Settings     $settings
  * @param              $filename
  * @return bool
  */
 public function publishToRegistry(Organization $organization, Settings $settings, $filename)
 {
     $orgPublishedFiles = $this->getPublishedFiles($organization->id, $filename);
     $api_url = config('filesystems.iati_registry_api_base_url');
     $apiCall = new CkanClient($api_url, $settings['registry_info'][0]['api_id']);
     try {
         foreach ($orgPublishedFiles as $publishedFile) {
             $data = $this->generateJson($publishedFile, $settings, $organization);
             if ($publishedFile['published_to_register'] == 0) {
                 $apiCall->package_create($data);
                 $this->updatePublishToRegister($publishedFile->id);
             } elseif ($publishedFile['published_to_register'] == 1) {
                 //                    $package = $settings['registry_info'][0]['publisher_id'] . '-org';
                 $apiCall->package_update($data);
             }
             $this->loggerInterface->info('Organization File Published', ['payload' => $data]);
         }
         return true;
     } catch (\Exception $e) {
         if (isset($data)) {
             $this->loggerInterface->error($e, ['trace' => $e->getTraceAsString(), 'payload' => $data]);
             return false;
         }
         $this->loggerInterface->error($e, ['trace' => $e->getTraceAsString()]);
         return false;
     }
 }
コード例 #2
0
 /**
  * @param $publishedFile
  * @param $orgId
  * @return bool
  */
 protected function publishToRegistryForBulk($publishedFile, $orgId)
 {
     $settings = $this->settingsManager->getSettings($orgId);
     $api_url = config('filesystems.iati_registry_api_base_url');
     $apiCall = new CkanClient($api_url, $settings['registry_info'][0]['api_id']);
     try {
         $data = $this->generateJson($publishedFile);
         if ($publishedFile['published_to_register'] == 0) {
             $apiCall->package_create($data);
             $this->activityManager->updatePublishToRegister($publishedFile->id);
         } elseif ($publishedFile['published_to_register'] == 1) {
             $apiCall->package_update($data);
         }
         $this->loggerInterface->info('Successfully published selected activity files', ['payload' => $data, 'by_user' => auth()->user()->name]);
         return true;
     } catch (\Exception $e) {
         $this->loggerInterface->error($e);
         return false;
     }
 }