diff --git a/rest/index.php b/rest/index.php index 45e008f639e96eaab0d88583cee6bc38ad820114..c53f550be39cddd657680c1dab7cf963a3722083 100755 --- a/rest/index.php +++ b/rest/index.php @@ -371,6 +371,7 @@ $app->put('/resources/{resId}/sign', \SignatureBook\controllers\SignatureBookCon $app->put('/resources/{resId}/unsign', \SignatureBook\controllers\SignatureBookController::class . ':unsignResource'); $app->get('/resources/{resId}/acknowledgementReceipts', \AcknowledgementReceipt\controllers\AcknowledgementReceiptController::class . ':getByResId'); $app->get('/resources/{resId}/shippings', \Shipping\controllers\ShippingController::class . ':getByResId'); +$app->get('/resources/{resId}/messageExchanges', \MessageExchange\controllers\MessageExchangeController::class . ':getByResId'); $app->put('/res/resource/status', \Resource\controllers\ResController::class . ':updateStatus'); $app->post('/res/list', \Resource\controllers\ResController::class . ':getList'); diff --git a/src/app/external/messageExchange/controllers/MessageExchangeController.php b/src/app/external/messageExchange/controllers/MessageExchangeController.php new file mode 100644 index 0000000000000000000000000000000000000000..e8660ec7580ed2846023dc1e4c4db74d69eb1e39 --- /dev/null +++ b/src/app/external/messageExchange/controllers/MessageExchangeController.php @@ -0,0 +1,74 @@ +<?php + +/** + * Copyright Maarch since 2008 under licence GPLv3. + * See LICENCE.txt file at the root folder for more details. + * This file is part of Maarch software. + * + */ + +/** + * @brief Message Exchange Controller + * @author dev@maarch.org + */ + +namespace MessageExchange\controllers; + +use MessageExchange\models\MessageExchangeModel; +use Resource\controllers\ResController; +use Respect\Validation\Validator; +use Slim\Http\Request; +use Slim\Http\Response; +use User\models\UserModel; + +class MessageExchangeController +{ + public static function getByResId(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']); + } + + $messagesModel = MessageExchangeModel::get([ + 'select' => [ + 'message_id', 'date', 'reference', 'type', 'sender_org_name', 'account_id', 'recipient_org_identifier', 'recipient_org_name', + 'reception_date', 'operation_date', 'data', 'res_id_master', 'filename', 'status' + ], + 'where' => ['res_id_master = ?', "(type = 'ArchiveTransfer' or reference like '%_ReplySent')"], + 'data' => [$args['resId']] + ]); + + $messages = []; + foreach ($messagesModel as $message) { + $messageType = 'm2m_' . strtoupper($message['type']); + + $user = UserModel::getLabelledUserById(['login' => $message['account_id']]); + $sender = $user . ' (' . $message['sender_org_name'] . ')'; + + $recipient = $message['recipient_org_name'] . ' (' . $message['recipient_org_identifier'] . ')'; + + if ($message['status'] == 'S') { + $status = 'sent'; + } elseif ($message['status'] == 'E') { + $status = 'error'; + } elseif ($message['status'] == 'W') { + $status = 'wait'; + } else { + $status = 'draft'; + } + + $messages[] = [ + 'messageId' => $message['message_id'], + 'creationDate' => $message['date'], + 'type' => $messageType, + 'sender' => $sender, + 'recipient' => $recipient, + 'receptionDate' => $message['reception_date'], + 'operationDate' => $message['operation_date'], + 'status' => $status + ]; + } + + return $response->withJson(['messageExchanges' => $messages]); + } +} diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index 6b616f67f3e58a13d1b7e73adb848a535bb5e81b..02ee216032df84f51f20d7ba90421ebca37e993a 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -1524,4 +1524,6 @@ export const LANG_FR = { "noMailContact" : "Aucun contact (externe) attaché pour ce courrier", "noSelectedAddress": "Aucune adresse associée", "documentUnsigned": "La signature du document a été retirée", + "m2m_ARCHIVETRANSFER" : "Pli numérique", + "m2m_ARCHIVETRANSFERREPLY" : "Réponse envoyée", };