You are here

public function Content::downloadFiles in GatherContent 7.3

Downloads all files asynchronously.

Parameters

array $files: Files object array.

array $fieldInfo: Field info.

Return value

array Imported files array.

File

includes/Content.inc, line 240
Contains GatherContent\Accont class.

Class

Content
Class Account.

Namespace

GatherContent

Code

public function downloadFiles(array $files, $fieldInfo) {
  $files = array_values($files);
  $importedFiles = [];
  foreach ($files as $file) {
    $url = "files/{$file->id}/download";
    $response = $this->client
      ->get($url);
    if ($response
      ->getStatusCode() === 200) {
      $importedFile = file_save_data($response
        ->getBody(), 'public://' . $file->fileName);
      if ($importedFile) {
        $importedFile->gathercontent_id = $file->id;
        file_save($importedFile);
        if ($fieldInfo['type'] === 'file') {
          $fileData = array(
            'fid' => $importedFile->fid,
            'display' => TRUE,
          );
        }
        else {
          $fileData = array(
            'fid' => $importedFile->fid,
          );
        }
        $importedFiles[] = $fileData;
      }
    }
  }
  ksort($importedFiles);
  return $importedFiles;
}