Skip to content

Commit 325d0d1

Browse files
Merge branch 'fixDatasetDeposit330-770' into 'stable-3_3_0'
Melhora processo de depósito do conjunto de dados - 3.3.0 See merge request softwares-pkp/plugins_ojs/dataverse!194
2 parents cbe2c65 + 26f8f4f commit 325d0d1

7 files changed

Lines changed: 78 additions & 45 deletions

File tree

api/v1/datasets/DatasetHandler.inc.php

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -218,15 +218,13 @@ public function addDataset($slimRequest, $response, $args)
218218
$dataset->setLicense($requestParams['datasetLicense']);
219219

220220
if (!empty($dataset->getFiles())) {
221-
try {
222-
$datasetService = new DatasetService();
223-
$datasetService->deposit($submission, $dataset);
224-
} catch (DataverseException $e) {
225-
return $response->withStatus(403)
226-
->withJsonError(
227-
'plugins.generic.dataverse.error.depositFailed',
228-
['error' => $e->getMessage()]
229-
);
221+
$datasetService = new DatasetService();
222+
$depositInfo = $datasetService->deposit($submission, $dataset);
223+
if ($depositInfo['status'] != 'Success') {
224+
return $response->withStatus(403)->withJsonError(
225+
$depositInfo['message'].'.author',
226+
$depositInfo['messageParams']
227+
);
230228
}
231229
}
232230

classes/dispatchers/DataverseEventsDispatcher.inc.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,9 @@ public function datasetDepositOnSubmission(string $hookName, array $params): boo
8181
}
8282

8383
$datasetService = new DatasetService();
84-
try {
85-
$datasetService->deposit($submission, $dataset);
86-
} catch (DataverseException $e) {
87-
$stepForm->addError(
88-
'depositError',
89-
__('plugins.generic.dataverse.error.depositFailedOnSubmission', ['error' => $e->getMessage()])
90-
);
84+
$depositInfo = $datasetService->deposit($submission, $dataset);
85+
if ($depositInfo['status'] != 'Success') {
86+
$stepForm->addError('depositError', __($depositInfo['message'].'.author', $depositInfo['messageParams']));
9187
$stepForm->addErrorField('depositError');
9288
}
9389

classes/services/DatasetService.inc.php

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,47 @@
66

77
class DatasetService extends DataverseService
88
{
9-
public function deposit(Submission $submission, Dataset $dataset): void
9+
public function deposit(Submission $submission, Dataset $dataset): array
1010
{
1111
$request = Application::get()->getRequest();
1212
$contextId = $request->getContext()->getId();
13+
$dataverseClient = new DataverseClient();
1314

1415
try {
15-
$dataverseClient = new DataverseClient();
1616
$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+
}
1729

18-
foreach ($dataset->getFiles() as $file) {
30+
foreach ($dataset->getFiles() as $file) {
31+
try {
1932
$dataverseClient->getDatasetFileActions()->add(
2033
$datasetIdentifier->getPersistentId(),
2134
$file->getOriginalFileName(),
2235
$file->getPath()
2336
);
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+
];
2449
}
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;
3350
}
3451

3552
$configuration = DAORegistry::getDAO('DataverseConfigurationDAO')->get($contextId);
@@ -68,6 +85,8 @@ public function deposit(Submission $submission, Dataset $dataset): void
6885
);
6986

7087
DAORegistry::getDAO('DraftDatasetFileDAO')->deleteBySubmissionId($submission->getId());
88+
89+
return ['status' => 'Success'];
7190
}
7291

7392
public function update(array $data): void
@@ -165,7 +184,6 @@ public function publish(DataverseStudy $study): void
165184

166185
try {
167186
$dataverseClient = new DataverseClient();
168-
169187
$dataset = $dataverseClient->getDatasetActions()->get($study->getPersistentId());
170188

171189
if ($dataset->isPublished()) {

locale/en_US/locale.po

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,16 +116,23 @@ msgstr "The subject of the research data is required.<br>"
116116
msgid "plugins.generic.dataverse.error.readmeFileRequired"
117117
msgstr "It is mandatory to send a README file, in PDF or TXT format, to accompany the research data files"
118118

119-
msgid "plugins.generic.dataverse.error.depositFailedOnSubmission"
120-
msgstr "Error depositing research data to Dataverse: {$error}<br>"
121-
"Please choose another data statement option or try again later."
122-
123119
msgid "plugins.generic.dataverse.error.getFailed"
124120
msgstr "Error getting research data to Dataverse: {$error}"
125121

126-
msgid "plugins.generic.dataverse.error.depositFailed"
122+
msgid "plugins.generic.dataverse.error.datasetDeposit"
127123
msgstr "Error depositing research data to Dataverse: {$error}"
128124

125+
msgid "plugins.generic.dataverse.error.datasetDeposit.author"
126+
msgstr "Error depositing research data to Dataverse: {$error}<br>"
127+
"Please choose another data statement option or try again later."
128+
129+
msgid "plugins.generic.dataverse.error.datasetFileDeposit"
130+
msgstr "Error depositing the data file \"{$fileName}\" to Dataverse: {$error}"
131+
132+
msgid "plugins.generic.dataverse.error.datasetFileDeposit.author"
133+
msgstr "Error depositing the data file \"{$fileName}\" to Dataverse: {$error}<br>"
134+
"Please check if there is a problem with the file and replace it if necessary"
135+
129136
msgid "plugins.generic.dataverse.error.updateFailed"
130137
msgstr "Error updating research data in Dataverse: {$error}"
131138

locale/es_ES/locale.po

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,16 +119,23 @@ msgstr "El asunto de los datos de investigación es obligatorio.<br>"
119119
msgid "plugins.generic.dataverse.error.readmeFileRequired"
120120
msgstr "Es obligatorio enviar un archivo README, en formato PDF o TXT, que acompañe a los archivos de datos de la investigación"
121121

122-
msgid "plugins.generic.dataverse.error.depositFailedOnSubmission"
123-
msgstr "Error al depositar los datos de investigación en Dataverse: {$error}<br>"
124-
"Por favor, elija otra opción de declaración de datos o intente nuevamente más tarde."
125-
126122
msgid "plugins.generic.dataverse.error.getFailed"
127123
msgstr "Erro al obtener datos de investigación en Dataverse: {$error}"
128124

129-
msgid "plugins.generic.dataverse.error.depositFailed"
125+
msgid "plugins.generic.dataverse.error.datasetDeposit"
130126
msgstr "Erro al depositar datos de investigación en Dataverse: {$error}"
131127

128+
msgid "plugins.generic.dataverse.error.datasetDeposit.author"
129+
msgstr "Error al depositar los datos de investigación en Dataverse: {$error}<br>"
130+
"Por favor, elija otra opción de declaración de datos o intente nuevamente más tarde."
131+
132+
msgid "plugins.generic.dataverse.error.datasetFileDeposit"
133+
msgstr "Erro al depositar lo archivo de datos \"{$fileName}\" en Dataverse: {$error}"
134+
135+
msgid "plugins.generic.dataverse.error.datasetFileDeposit.author"
136+
msgstr "Erro al depositar lo archivo de datos \"{$fileName}\" en Dataverse: {$error}<br>"
137+
"Por favor, compruebe si hay algún problema con el archivo y sustitúyalo si es necesario"
138+
132139
msgid "plugins.generic.dataverse.error.updateFailed"
133140
msgstr "Erro al actualizar datos de investigación en Dataverse: {$error}"
134141

locale/pt_BR/locale.po

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,16 +119,23 @@ msgstr "O assunto dos dados de pesquisa é obrigatório.<br>"
119119
msgid "plugins.generic.dataverse.error.readmeFileRequired"
120120
msgstr "É obrigatório o envio de um arquivo README, em formato PDF ou TXT, que acompanhe os arquivos de dados de pesquisa"
121121

122-
msgid "plugins.generic.dataverse.error.depositFailedOnSubmission"
123-
msgstr "Erro ao depositar dados de pesquisa no Dataverse: {$error}<br>"
124-
"Por favor, escolha outra opção de declaração de dados ou tente novamente mais tarde."
125-
126122
msgid "plugins.generic.dataverse.error.getFailed"
127123
msgstr "Erro ao obter dados de pesquisa no Dataverse: {$error}"
128124

129-
msgid "plugins.generic.dataverse.error.depositFailed"
125+
msgid "plugins.generic.dataverse.error.datasetDeposit"
130126
msgstr "Erro ao depositar dados de pesquisa no Dataverse: {$error}"
131127

128+
msgid "plugins.generic.dataverse.error.datasetDeposit.author"
129+
msgstr "Erro ao depositar dados de pesquisa no Dataverse: {$error}<br>"
130+
"Por favor, escolha outra opção de declaração de dados ou tente novamente mais tarde."
131+
132+
msgid "plugins.generic.dataverse.error.datasetFileDeposit"
133+
msgstr "Erro ao depositar o arquivo de dados \"{$fileName}\" no Dataverse: {$error}"
134+
135+
msgid "plugins.generic.dataverse.error.datasetFileDeposit.author"
136+
msgstr "Erro ao depositar o arquivo de dados \"{$fileName}\" no Dataverse: {$error}<br>"
137+
"Por favor, verifique se há algum problema com o arquivo e substitua-o caso necessário"
138+
132139
msgid "plugins.generic.dataverse.error.updateFailed"
133140
msgstr "Erro ao atualizar dados de pesquisa no Dataverse: {$error}"
134141

version.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<version>
1414
<application>dataverse</application>
1515
<type>plugins.generic</type>
16-
<release>2.7.10.0</release>
17-
<date>2025-04-16</date>
16+
<release>2.7.11.0</release>
17+
<date>2025-04-17</date>
1818
<lazy-load>1</lazy-load>
1919
<class>DataversePlugin</class>
2020
</version>

0 commit comments

Comments
 (0)