Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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]);
}
}