Skip to content

Commit 00fbbab

Browse files
Treats case in which dataverse collection didn't have standard structure
Issue: documentacao-e-tarefas/scielo#813 Signed-off-by: Jhon <jhon@lepidus.com.br>
1 parent 913707e commit 00fbbab

2 files changed

Lines changed: 16 additions & 4 deletions

File tree

classes/dispatchers/DataStatementDispatcher.inc.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,7 @@ public function viewDataStatement(string $hookName, array $params): bool
242242
$output = &$params[2];
243243

244244
$dataStatementService = new DataStatementService();
245-
$allDataStatementTypes = $dataStatementService->getDataStatementTypes();
246-
unset($allDataStatementTypes[DATA_STATEMENT_TYPE_DATAVERSE_SUBMITTED]);
245+
$allDataStatementTypes = $dataStatementService->getDataStatementTypes(false);
247246

248247
$templateMgr->assign('allDataStatementTypes', $allDataStatementTypes);
249248

dataverseAPI/actions/DataverseCollectionActions.inc.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ public function get(): DataverseCollection
2424
$response = $this->nativeAPIRequest('GET', $uri);
2525
$dataverseCollection = $this->createDataverseCollection($response);
2626

27-
$cache->setEntireCache($dataverseCollection);
27+
if (!empty($dataverseCollection->getName())) {
28+
$cache->setEntireCache($dataverseCollection);
29+
}
2830
}
2931

3032
return $dataverseCollection;
@@ -48,7 +50,9 @@ public function getRoot(): DataverseCollection
4850
$response = $this->nativeAPIRequest('GET', $uri);
4951
$rootDataverseCollection = $this->createDataverseCollection($response);
5052

51-
$cache->setEntireCache($rootDataverseCollection);
53+
if (!empty($rootDataverseCollection->getName())) {
54+
$cache->setEntireCache($rootDataverseCollection);
55+
}
5256
}
5357

5458
return $rootDataverseCollection;
@@ -99,6 +103,15 @@ public function publish(): void
99103
private function createDataverseCollection(DataverseResponse $response): DataverseCollection
100104
{
101105
$jsonContent = json_decode($response->getBody(), true);
106+
if ($jsonContent['status'] != 'OK'
107+
|| empty($jsonContent['data'])
108+
|| !isset($jsonContent['data']['name'])
109+
) {
110+
$dummyDataverseCollection = new DataverseCollection();
111+
$dummyDataverseCollection->setName('');
112+
return $dummyDataverseCollection;
113+
}
114+
102115
$dataverseCollectionData = $jsonContent['data'];
103116
$dataverseCollection = new DataverseCollection();
104117
$dataverseCollection->setAllData($dataverseCollectionData);

0 commit comments

Comments
 (0)