From 5ad258ee704081bffb678c46a4e71ccfb2710d20 Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Fri, 17 May 2019 13:33:54 +0100 Subject: [PATCH] FEAT #8391 TIME 1 End connection with xParaph --- .../batch/process_mailsFromSignatoryBook.php | 2 +- .../controllers/XParaphController.php | 43 ++++++++++++++----- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/modules/visa/batch/process_mailsFromSignatoryBook.php b/modules/visa/batch/process_mailsFromSignatoryBook.php index bb0b4b83781..0a6c72d0e44 100755 --- a/modules/visa/batch/process_mailsFromSignatoryBook.php +++ b/modules/visa/batch/process_mailsFromSignatoryBook.php @@ -230,7 +230,7 @@ if (file_exists($GLOBALS['errorLckFile'])) { Bt_getWorkBatch(); $GLOBALS['logger']->write('Retrieve attachments sent to remote signatory book', 'INFO'); -$query = "SELECT res_id, res_id_version, external_id->>'signatureBookId' as external_id, external_id->>'xparaphDepot', format, res_id_master, title, identifier, type_id, attachment_type, dest_contact_id, dest_address_id, dest_user, typist, attachment_id_master, relation +$query = "SELECT res_id, res_id_version, external_id->>'signatureBookId' as external_id, external_id->>'xparaphDepot' as xparaphdepot, format, res_id_master, title, identifier, type_id, attachment_type, dest_contact_id, dest_address_id, dest_user, typist, attachment_id_master, relation FROM res_view_attachments WHERE status = 'FRZ' AND external_id->>'signatureBookId' IS NOT NULL AND external_id->>'signatureBookId' <> ''"; $stmt = $GLOBALS['db']->query($query, []); diff --git a/src/app/external/externalSignatoryBook/controllers/XParaphController.php b/src/app/external/externalSignatoryBook/controllers/XParaphController.php index 80818c8157f..95e75fa9ac2 100755 --- a/src/app/external/externalSignatoryBook/controllers/XParaphController.php +++ b/src/app/external/externalSignatoryBook/controllers/XParaphController.php @@ -42,11 +42,21 @@ class XParaphController $attachmentToFreeze = []; $userGeneric = []; - foreach ($aArgs['config']['data']['userGeneric'] as $userGenericXml) { - if ($userGenericXml->siret == $aArgs['info']['siret']) { - $userGeneric = (array)$userGenericXml; - break; + if (isset($aArgs['config']['data']['userGeneric']->siret)) { + if ($aArgs['config']['data']['userGeneric']->siret == $aArgs['info']['siret']) { + $userGeneric = (array)$aArgs['config']['data']['userGeneric']; } + } else { + foreach ($aArgs['config']['data']['userGeneric'] as $userGenericXml) { + if ($userGenericXml->siret == $aArgs['info']['siret']) { + $userGeneric = (array)$userGenericXml; + break; + } + } + } + + if (empty($userGeneric)) { + return ['error' => 'No user generic for this siret']; } foreach ($attachments as $value) { @@ -308,6 +318,9 @@ class XParaphController break; } } + if (empty($userGeneric)) { + return $response->withStatus(403)->withJson(['error' => 'No user generic for this siret']); + } } else { return $response->withStatus(403)->withJson(['errors' => 'xParaph is not enabled']); } @@ -372,17 +385,24 @@ class XParaphController foreach (['noVersion', 'isVersion'] as $version) { $depotsBySiret = []; foreach ($aArgs['idsToRetrieve'][$version] as $resId => $value) { - $externalId = json_decode($value['xparaphDepot'], true); + $externalId = json_decode($value->xparaphdepot, true); $depotsBySiret[$externalId['siret']][$value->external_id] = ['resId' => $resId, 'login' => $externalId['login']]; } foreach ($depotsBySiret as $siret => $depotids) { - foreach ($aArgs['config']['userGeneric'] as $userGenericXml) { - if ($userGenericXml['siret'] == $siret) { - $userGeneric = $userGenericXml; - break; + if (isset($aArgs['config']['data']['userGeneric']->siret)) { + if ($aArgs['config']['data']['userGeneric']->siret == $siret) { + $userGeneric = (array)$aArgs['config']['data']['userGeneric']; + } + } else { + foreach ($aArgs['config']['data']['userGeneric'] as $userGenericXml) { + if ($userGenericXml->siret == $siret) { + $userGeneric = (array)$userGenericXml; + break; + } } } + if (!empty($depotids)) { $avancements = XParaphController::getAvancement(['config' => $aArgs['config'], 'depotsIds' => $depotids, 'userGeneric' => $userGeneric]); } else { @@ -391,6 +411,7 @@ class XParaphController } foreach ($aArgs['idsToRetrieve'][$version] as $resId => $value) { + $xParaphDepot = json_decode($value->xparaphdepot, true); $avancement = $avancements[$value->external_id]; $state = XParaphController::getState(['avancement' => $avancement]); @@ -399,7 +420,7 @@ class XParaphController $aArgs['idsToRetrieve'][$version][$resId]->status = 'refused'; $aArgs['idsToRetrieve'][$version][$resId]->noteContent = $state['note']; - $processedFile = XParaphController::getFile(['config' => $aArgs['config'], 'depotId' => $value->external_id, 'userGeneric' => $userGeneric, 'depotLogin' => $depotids['login']]); + $processedFile = XParaphController::getFile(['config' => $aArgs['config'], 'depotId' => $value->external_id, 'userGeneric' => $userGeneric, 'depotLogin' => $xParaphDepot['login']]); if (!empty($processedFile['errors'])) { unset($aArgs['idsToRetrieve'][$version][$resId]); continue; @@ -421,7 +442,7 @@ class XParaphController $aArgs['idsToRetrieve'][$version][$resId]->log = $log; } elseif ($state['id'] == 'validateSignature' || $state['id'] == 'validateOnlyVisa') { - $processedFile = XParaphController::getFile(['config' => $aArgs['config'], 'depotId' => $value->external_id]); + $processedFile = XParaphController::getFile(['config' => $aArgs['config'], 'depotId' => $value->external_id, 'userGeneric' => $userGeneric, 'depotLogin' => $xParaphDepot['login']]); if (!empty($processedFile['errors'])) { unset($aArgs['idsToRetrieve'][$version][$resId]); continue; -- GitLab