ЦИТК-907 - ДИАДОК - Дополнительный запрос статуса документа в ЛК ЭДО после выполнения действия с ним.

This commit is contained in:
Mikhail Chechnev 2024-12-16 14:12:56 +03:00
parent 4c0c296dc6
commit 71a5c75009

View File

@ -482,10 +482,10 @@ const afterEvent = async prms => {
//Получим список уникальных ящиков
for (let i in resp.Events) {
if (resp.Events[i]?.Message) {
if (!boxIds.boxIds.find(box => box.boxId === resp.Events[i]?.Message.FromBoxId)) {
if ((!boxIds.boxIds.find(box => box.boxId === resp.Events[i]?.Message.FromBoxId)) && (resp.Events[i]?.Message.FromBoxId)) {
boxIds.boxIds.push({ boxId: resp.Events[i]?.Message.FromBoxId });
}
if (!boxIds.boxIds.find(box => box.boxId === resp.Events[i]?.Message.ToBoxId)) {
if ((!boxIds.boxIds.find(box => box.boxId === resp.Events[i]?.Message.ToBoxId)) && (resp.Events[i]?.Message.ToBoxId)) {
boxIds.boxIds.push({ boxId: resp.Events[i]?.Message.ToBoxId });
}
}
@ -777,6 +777,60 @@ const afterDepartmentIdGet = async prms => {
};
};
//Обработчик "До" отправки запроса на получение списка документов в сообщении к сервису "ДИАДОК"
const beforeDocumentsByMessageIdGet = async prms => {
//Получим ключ разработчика
let sAPIClientId = getAPIClientId(prms.options.nCompany, prms.options.nJurPers);
//Проверим ключ разработчика
checkAPIClientId(sAPIClientId);
//Формируем запрос
try {
//Считаем токен доступа из контекста сервиса
let sToken = null;
if (prms.service.sCtx) {
sToken = prms.service.sCtx;
}
//Если не достали из контекста токен доступа - значит нет аутентификации на сервере
if (!sToken) return { bUnAuth: true };
//Собираем и отдаём общий результат работы
return {
options: {
headers: buildHeaders(sAPIClientId, sToken),
simple: false
}
};
} catch (e) {
throw Error(e);
}
};
//Обработчик "После" отправки запроса на получение списка документов в сообщении к сервису "ДИАДОК"
const afterDocumentsByMessageIdGet = async prms => {
let resu = null;
//Действие выполнено успешно
if (prms.optionsResp.statusCode == 200) {
try {
//Разберем ответ сервера
resp = JSON.parse(prms.queue.blResp.toString());
//Преобразуем JSON ответ сервиса "ДИАДОК" в XML, понятный "Парус 8"
resu = toXML({ root: resp });
} catch (e) {
throw new Error(`Неожиданный ответ сервера ЭДО "ДИАДОК". Ошибка интерпретации: ${e.message}`);
}
} else {
//Если пришел текст ошибки
if (prms.queue.blResp) {
throw new Error(`Неожиданный ответ сервера ЭДО "ДИАДОК": ${prms.queue.blResp.toString()}`);
} else {
throw new Error('Сервер ЭДО "ДИАДОК" не вернул ответ');
}
}
//Возврат результата
return {
blResp: Buffer.from(resu)
};
};
//-----------------
// Интерфейс модуля
//-----------------
@ -794,3 +848,5 @@ exports.afterDocLoad = afterDocLoad;
exports.beforeDocDelete = beforeDocDelete;
exports.beforeDepartmentIdGet = beforeDepartmentIdGet;
exports.afterDepartmentIdGet = afterDepartmentIdGet;
exports.beforeDocumentsByMessageIdGet = beforeDocumentsByMessageIdGet;
exports.afterDocumentsByMessageIdGet = afterDocumentsByMessageIdGet;