|
24 | 24 |
|
25 | 25 | class DatasetService extends DataverseService |
26 | 26 | { |
27 | | - public function deposit(Submission $submission, Dataset $dataset): void |
| 27 | + public function deposit(Submission $submission, Dataset $dataset): array |
28 | 28 | { |
29 | 29 | $contextId = $submission->getData('contextId'); |
| 30 | + $dataverseClient = new DataverseClient(); |
30 | 31 |
|
31 | 32 | try { |
32 | | - $dataverseClient = new DataverseClient(); |
33 | 33 | $datasetIdentifier = $dataverseClient->getDatasetActions()->create($dataset); |
| 34 | + } catch (DataverseException $e) { |
| 35 | + $this->registerAndNotifyError( |
| 36 | + $submission, |
| 37 | + 'plugins.generic.dataverse.error.datasetDeposit', |
| 38 | + ['error' => $e->getMessage()] |
| 39 | + ); |
| 40 | + return [ |
| 41 | + 'status' => 'Error', |
| 42 | + 'message' => 'plugins.generic.dataverse.error.datasetDeposit', |
| 43 | + 'messageParams' => ['error' => $e->getMessage()] |
| 44 | + ]; |
| 45 | + } |
34 | 46 |
|
35 | | - foreach ($dataset->getFiles() as $file) { |
| 47 | + foreach ($dataset->getFiles() as $file) { |
| 48 | + try { |
36 | 49 | $dataverseClient->getDatasetFileActions()->add( |
37 | 50 | $datasetIdentifier->getPersistentId(), |
38 | 51 | $file->getOriginalFileName(), |
39 | 52 | $file->getPath() |
40 | 53 | ); |
| 54 | + } catch (DataverseException $e) { |
| 55 | + $this->registerAndNotifyError( |
| 56 | + $submission, |
| 57 | + 'plugins.generic.dataverse.error.datasetFileDeposit', |
| 58 | + ['error' => $e->getMessage()] |
| 59 | + ); |
| 60 | + $dataverseClient->getDatasetActions()->delete($datasetIdentifier->getPersistentId()); |
| 61 | + return [ |
| 62 | + 'status' => 'Error', |
| 63 | + 'message' => 'plugins.generic.dataverse.error.datasetFileDeposit', |
| 64 | + 'messageParams' => ['error' => $e->getMessage(), 'fileName' => $file->getOriginalFileName()] |
| 65 | + ]; |
41 | 66 | } |
42 | | - } catch (DataverseException $e) { |
43 | | - $this->registerAndNotifyError( |
44 | | - $submission, |
45 | | - 'plugins.generic.dataverse.error.depositFailed', |
46 | | - ['error' => $e->getMessage()] |
47 | | - ); |
48 | | - error_log('Dataverse API error: ' . $e->getMessage()); |
49 | | - throw $e; |
50 | 67 | } |
51 | 68 |
|
52 | 69 | $configuration = DAORegistry::getDAO('DataverseConfigurationDAO')->get($contextId); |
@@ -79,6 +96,8 @@ public function deposit(Submission $submission, Dataset $dataset): void |
79 | 96 | ); |
80 | 97 |
|
81 | 98 | Repo::draftDatasetFile()->deleteBySubmissionId($submission->getId()); |
| 99 | + |
| 100 | + return ['status' => 'Success']; |
82 | 101 | } |
83 | 102 |
|
84 | 103 | public function update(array $data): void |
|
0 commit comments