Example #1
0
 public function cloneProject($pidSource, $pidTarget, $includeData = 0, $includeUsers = 0)
 {
     $uri = "/gdc/md/{$pidSource}/maintenance/export";
     $params = ['exportProject' => ['exportUsers' => $includeUsers, 'exportData' => $includeData]];
     $result = $this->client->post($uri, $params);
     if (empty($result['exportArtifact']['token']) || empty($result['exportArtifact']['status']['uri'])) {
         throw Exception::unexpectedResponseError('Clone project export failed', 'POST', $uri, $result);
     }
     $this->client->pollTask($result['exportArtifact']['status']['uri']);
     $uri = "/gdc/md/{$pidTarget}/maintenance/import";
     $result = $this->client->post($uri, ['importProject' => ['token' => $result['exportArtifact']['token']]]);
     if (empty($result['uri'])) {
         throw Exception::unexpectedResponseError('Clone project import failed', 'POST', $uri, $result);
     }
     $this->client->pollTask($result['uri']);
 }