Дополнительный модуль: Интеграция с ЕГРЮЛ/ЕГРИП (DaData)
This commit is contained in:
parent
08e1e64037
commit
4c0d94e9ec
62
modules/egragdd.js
Normal file
62
modules/egragdd.js
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/*
|
||||||
|
Сервис интеграции ПП Парус 8 с WEB API
|
||||||
|
Дополнительный модуль: Интеграция с ЕГРЮЛ/ЕГРИП (DaData)
|
||||||
|
*/
|
||||||
|
|
||||||
|
//------------
|
||||||
|
// Тело модуля
|
||||||
|
//------------
|
||||||
|
|
||||||
|
//Обработчик "До" отправки запроса к сервису
|
||||||
|
const beforeProcess = async prms => {
|
||||||
|
try {
|
||||||
|
//Считаем токен доступа из контекста сервиса
|
||||||
|
let sToken = prms.service.sSrvPass;
|
||||||
|
//Если не заполнен токен доступа - значит нет аутентификации на сервере
|
||||||
|
if (!sToken) return { bUnAuth: true };
|
||||||
|
//Собираем и отдаём общий результат работы - отдаём запрос в XML, и ответ ожидаем (ключ заголовка "Accept") в XML
|
||||||
|
return {
|
||||||
|
options: {
|
||||||
|
headers: {
|
||||||
|
"Content-type": "application/xml; charset=utf-8",
|
||||||
|
Accept: "application/xml; charset=utf-8",
|
||||||
|
Authorization: "Token " + sToken
|
||||||
|
},
|
||||||
|
simple: false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} catch (e) {
|
||||||
|
throw Error(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//Обработчик "После" запроса к сервису
|
||||||
|
const afterProcess = async prms => {
|
||||||
|
//Разберем ответ
|
||||||
|
if (prms.queue.blResp) {
|
||||||
|
//Нормальные данные приходят в XML (мы так просили), но ошибки - всегда в JSON
|
||||||
|
try {
|
||||||
|
//Поэтому пробуем разобрать ответ как JSON
|
||||||
|
resp = JSON.parse(prms.queue.blResp.toString());
|
||||||
|
//Если получилось - положим в тело текст ошибки сервера
|
||||||
|
return {
|
||||||
|
blResp: Buffer.from(resp.message)
|
||||||
|
};
|
||||||
|
} catch (e) {
|
||||||
|
//Разобрать не получилось - видимо пришли обычные данные
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//Вообще нет данных в теле ответа
|
||||||
|
return {
|
||||||
|
blResp: Buffer.from("Сервер ЕГРЮЛ/ЕГРИП (DaData) не вернул ответ")
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//-----------------
|
||||||
|
// Интерфейс модуля
|
||||||
|
//-----------------
|
||||||
|
|
||||||
|
exports.beforeProcess = beforeProcess;
|
||||||
|
exports.afterProcess = afterProcess;
|
Loading…
x
Reference in New Issue
Block a user