Модули для тестирования входящих (взаимодействие с Яндекс-Диалогами)

This commit is contained in:
Mikhail Chechnev 2018-12-14 21:54:36 +03:00
parent 6d4d833be6
commit 60c4ab88f1
2 changed files with 102 additions and 0 deletions

View File

@ -13,6 +13,30 @@ create or replace package UDO_PKG_EXS_TEST as
NSRV_TYPE in number, -- Òèï ñåðâèñà (ñì. êîíñòàíòû PKG_EXS.NSRV_TYPE*)
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
);
/* Обработка запроса на создание сессии */
procedure RESP_LOGIN
(
NIDENT in number, -- Идентификатор процесса
NSRV_TYPE in number, -- Тип сервиса (см. константы PKG_EXS.NSRV_TYPE*)
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
);
/* Обработка запроса на поиск контрагента */
procedure RESP_FIND_AGENT
(
NIDENT in number, -- Идентификатор процесса
NSRV_TYPE in number, -- Тип сервиса (см. константы PKG_EXS.NSRV_TYPE*)
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
);
/* Обработка запроса на поиск договора */
procedure RESP_FIND_CONTRACT
(
NIDENT in number, -- Идентификатор процесса
NSRV_TYPE in number, -- Тип сервиса (см. константы PKG_EXS.NSRV_TYPE*)
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
);
end;
/
@ -99,6 +123,51 @@ create or replace package body UDO_PKG_EXS_TEST as
when others then
PKG_EXS.PRC_RESP_ARG_STR_SET(NIDENT => NIDENT, SARG => PKG_EXS.SCONT_FLD_SERR, SVALUE => sqlerrm);
end;
/* Обработка запроса на создание сессии */
procedure RESP_LOGIN
(
NIDENT in number, -- Идентификатор процесса
NSRV_TYPE in number, -- Тип сервиса (см. константы PKG_EXS.NSRV_TYPE*)
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
)
is
REXSQUEUE EXSQUEUE%rowtype; -- Запись позиции очереди
CTMP clob; -- Буфер для конвертации
begin
/* Считаем запись очереди */
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
/* Конвертируем в кодировку БД */
CTMP := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
/* Выставляем результат обработки */
PKG_EXS.PRC_RESP_ARG_BLOB_SET(NIDENT => NIDENT,
SARG => PKG_EXS.SCONT_FLD_BRESP,
BVALUE => CLOB2BLOB(LCDATA => CTMP || ' ОБРАБОТКА ПАРУС 8', SCHARSET => 'UTF8'));
end;
/* Обработка запроса на поиск контрагента */
procedure RESP_FIND_AGENT
(
NIDENT in number, -- Идентификатор процесса
NSRV_TYPE in number, -- Тип сервиса (см. константы PKG_EXS.NSRV_TYPE*)
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
)
is
begin
null;
end;
/* Обработка запроса на поиск договора */
procedure RESP_FIND_CONTRACT
(
NIDENT in number, -- Идентификатор процесса
NSRV_TYPE in number, -- Тип сервиса (см. константы PKG_EXS.NSRV_TYPE*)
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
)
is
begin
null;
end;
end;
/

33
modules/parus_alice.js Normal file
View File

@ -0,0 +1,33 @@
/*
Сервис интеграции ПП Парус 8 с WEB API
Дополнительный модуль: Взаимодействие с Яндекс-Диалогами (голосовым помошником "Алиса")
*/
//------------
// Тело модуля
//------------
//ДО функции "Алиса/Начало сеанса"
const beforeLogin = async prms => {
const d = `${prms.queue.blMsg.toString()} BEFORE LOGIN`;
return {
blMsg: new Buffer(d)
};
};
//ПОСЛЕ функции "Алиса/Начало сеанса"
const afterLogin = async prms => {
let d = "";
if (prms.queue.blResp) d = `${prms.queue.blResp.toString()} AFTER LOGIN`;
else d = `${prms.queue.blMsg.toString()} AFTER LOGIN`;
return {
blResp: new Buffer(d)
};
};
//-----------------
// Интерфейс модуля
//-----------------
exports.beforeLogin = beforeLogin;
exports.afterLogin = afterLogin;