From 4e15147b671876a55fe86324a9bb88ee908821b9 Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Thu, 30 Jan 2020 18:33:23 +0100 Subject: [PATCH] FEAT #12346 TIME 0:15 route to get integrations --- rest/index.php | 1 + .../resource/controllers/ResController.php | 57 ++++++++++++------- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/rest/index.php b/rest/index.php index eee8e31a298..a5a20e66c78 100755 --- a/rest/index.php +++ b/rest/index.php @@ -372,6 +372,7 @@ $app->get('/resources/{resId}/users/{userId}/isDestinationChanging', \Action\con $app->get('/resources/{resId}/users/{userId}/groups/{groupId}/baskets/{basketId}/processingData', \Resource\controllers\ResController::class . ':getProcessingData'); $app->post('/resources/exportData', \Resource\controllers\ResourceDataExportController::class . ':generateFile'); $app->put('/resources/{resId}/integrations', \Resource\controllers\ResController::class . ':setInIntegrations'); +$app->get('/resources/{resId}/integrations', \Resource\controllers\ResController::class . ':getInIntegrations'); //ResourcesList $app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}', \Resource\controllers\ResourceListController::class . ':get'); diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php index f892dd778fc..08055913610 100755 --- a/src/app/resource/controllers/ResController.php +++ b/src/app/resource/controllers/ResController.php @@ -118,7 +118,7 @@ class ResController $queryParams = $request->getQueryParams(); - $select = ['model_id', 'category_id', 'priority', 'subject', 'alt_identifier', 'process_limit_date', 'closing_date', 'creation_date', 'modification_date']; + $select = ['model_id', 'category_id', 'priority', 'subject', 'alt_identifier', 'process_limit_date', 'closing_date', 'creation_date', 'modification_date', 'integrations']; if (empty($queryParams['light'])) { $select = array_merge($select, ['type_id', 'typist', 'status', 'destination', 'initiator', 'confidentiality', 'doc_date', 'admission_date', 'departure_date', 'barcode', 'custom_fields']); } @@ -132,32 +132,33 @@ class ResController } $unchangeableData = [ - 'resId' => (int)$args['resId'], - 'modelId' => $document['model_id'], - 'categoryId' => $document['category_id'], - 'chrono' => $document['alt_identifier'], - 'closingDate' => $document['closing_date'], - 'creationDate' => $document['creation_date'], - 'modificationDate' => $document['modification_date'] + 'resId' => (int)$args['resId'], + 'modelId' => $document['model_id'], + 'categoryId' => $document['category_id'], + 'chrono' => $document['alt_identifier'], + 'closingDate' => $document['closing_date'], + 'creationDate' => $document['creation_date'], + 'modificationDate' => $document['modification_date'], + 'integrations' => json_decode($document['integrations'], true) ]; $formattedData = [ - 'subject' => $document['subject'], - 'processLimitDate' => $document['process_limit_date'], - 'priority' => $document['priority'] + 'subject' => $document['subject'], + 'processLimitDate' => $document['process_limit_date'], + 'priority' => $document['priority'] ]; if (empty($queryParams['light'])) { $formattedData = array_merge($formattedData, [ - 'doctype' => $document['type_id'], - 'typist' => $document['typist'], - 'typistLabel' => UserModel::getLabelledUserById(['id' => $document['typist']]), - 'status' => $document['status'], - 'destination' => $document['destination'], - 'initiator' => $document['initiator'], - 'confidentiality' => $document['confidentiality'] == 'Y', - 'documentDate' => $document['doc_date'], - 'arrivalDate' => $document['admission_date'], - 'departureDate' => $document['departure_date'], - 'barcode' => $document['barcode'] + 'doctype' => $document['type_id'], + 'typist' => $document['typist'], + 'typistLabel' => UserModel::getLabelledUserById(['id' => $document['typist']]), + 'status' => $document['status'], + 'destination' => $document['destination'], + 'initiator' => $document['initiator'], + 'confidentiality' => $document['confidentiality'] == 'Y', + 'documentDate' => $document['doc_date'], + 'arrivalDate' => $document['admission_date'], + 'departureDate' => $document['departure_date'], + 'barcode' => $document['barcode'] ]); } @@ -754,6 +755,18 @@ class ResController return $response->withStatus(204); } + public static function getInIntegrations(Request $request, Response $response, array $args) + { + if (!Validator::intVal()->validate($args['resId']) || !ResController::hasRightByResId(['resId' => [$args['resId']], 'userId' => $GLOBALS['id']])) { + return $response->withStatus(403)->withJson(['errors' => 'Document out of perimeter']); + } + + $resource = ResModel::getById(['resId' => $args['resId'], 'select' => ['integrations']]); + $integrations = json_decode($resource['integrations'], true); + + return $response->withJson(['integrations' => $integrations]); + } + public static function getEncodedDocument(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['resId']); -- GitLab