|
6 | 6 |
|
7 | 7 | class DatasetService extends DataverseService |
8 | 8 | { |
9 | | - public function deposit(Submission $submission, Dataset $dataset): void |
| 9 | + public function deposit(Submission $submission, Dataset $dataset): array |
10 | 10 | { |
11 | 11 | $request = Application::get()->getRequest(); |
12 | 12 | $contextId = $request->getContext()->getId(); |
| 13 | + $dataverseClient = new DataverseClient(); |
13 | 14 |
|
14 | 15 | try { |
15 | | - $dataverseClient = new DataverseClient(); |
16 | 16 | $datasetIdentifier = $dataverseClient->getDatasetActions()->create($dataset); |
| 17 | + } catch (DataverseException $e) { |
| 18 | + $this->registerEventLog( |
| 19 | + $submission, |
| 20 | + 'plugins.generic.dataverse.error.datasetDeposit', |
| 21 | + ['error' => $e->getMessage()] |
| 22 | + ); |
| 23 | + return [ |
| 24 | + 'status' => 'Error', |
| 25 | + 'message' => 'plugins.generic.dataverse.error.datasetDeposit', |
| 26 | + 'messageParams' => ['error' => $e->getMessage()] |
| 27 | + ]; |
| 28 | + } |
17 | 29 |
|
18 | | - foreach ($dataset->getFiles() as $file) { |
| 30 | + foreach ($dataset->getFiles() as $file) { |
| 31 | + try { |
19 | 32 | $dataverseClient->getDatasetFileActions()->add( |
20 | 33 | $datasetIdentifier->getPersistentId(), |
21 | 34 | $file->getOriginalFileName(), |
22 | 35 | $file->getPath() |
23 | 36 | ); |
| 37 | + } catch (DataverseException $e) { |
| 38 | + $this->registerEventLog( |
| 39 | + $submission, |
| 40 | + 'plugins.generic.dataverse.error.datasetFileDeposit', |
| 41 | + ['error' => $e->getMessage()] |
| 42 | + ); |
| 43 | + $dataverseClient->getDatasetActions()->delete($datasetIdentifier->getPersistentId()); |
| 44 | + return [ |
| 45 | + 'status' => 'Error', |
| 46 | + 'message' => 'plugins.generic.dataverse.error.datasetFileDeposit', |
| 47 | + 'messageParams' => ['error' => $e->getMessage(), 'fileName' => $file->getOriginalFileName()] |
| 48 | + ]; |
24 | 49 | } |
25 | | - } catch (DataverseException $e) { |
26 | | - $this->registerEventLog( |
27 | | - $submission, |
28 | | - 'plugins.generic.dataverse.error.depositFailed', |
29 | | - ['error' => $e->getMessage()] |
30 | | - ); |
31 | | - error_log('Dataverse API error: ' . $e->getMessage()); |
32 | | - throw $e; |
33 | 50 | } |
34 | 51 |
|
35 | 52 | $configuration = DAORegistry::getDAO('DataverseConfigurationDAO')->get($contextId); |
@@ -68,6 +85,8 @@ public function deposit(Submission $submission, Dataset $dataset): void |
68 | 85 | ); |
69 | 86 |
|
70 | 87 | DAORegistry::getDAO('DraftDatasetFileDAO')->deleteBySubmissionId($submission->getId()); |
| 88 | + |
| 89 | + return ['status' => 'Success']; |
71 | 90 | } |
72 | 91 |
|
73 | 92 | public function update(array $data): void |
@@ -165,7 +184,6 @@ public function publish(DataverseStudy $study): void |
165 | 184 |
|
166 | 185 | try { |
167 | 186 | $dataverseClient = new DataverseClient(); |
168 | | - |
169 | 187 | $dataset = $dataverseClient->getDatasetActions()->get($study->getPersistentId()); |
170 | 188 |
|
171 | 189 | if ($dataset->isPublished()) { |
|
0 commit comments