示例#1
0
 /**
  * Unlink a file from the IATI Registry.
  * @param $registryInfo
  * @param $changeDetails
  * @return bool
  * @throws Exception
  */
 public function unlink($registryInfo, $changeDetails)
 {
     try {
         $apiKey = $registryInfo[0]['api_id'];
         $api = new CkanClient(env('REGISTRY_URL'), $apiKey);
         foreach ($changeDetails['previous'] as $filename => $previous) {
             $pieces = explode(".", $filename);
             $fileId = array_first($pieces, function () {
                 return true;
             });
             if (getVal($previous, ['published_status'])) {
                 $api->package_delete($fileId);
             }
         }
         return true;
     } catch (Exception $exception) {
         throw $exception;
     }
 }
 /**
  * @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;
     }
 }
 /**
  * @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;
     }
 }