b5010df0cab8e905065003142d46729b8f9eecea
[motion2.git] / server / services / routing / server / applications / dialogflowV2.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xc305=['create','then','info','[%s][DIALOGFLOWV2]\x20%s','error','consequence','isNil','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','YYYY-MM-DD\x20HH:mm:ss','channel','sms','whatsapp','phone','interaction','chat','ChatWebsiteId','upperFirst','AccountId','InteractionId','created','getMustacheRender','catch','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','sessionPath','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','boolValue','DIALOGFLOWV2_INTENTNAME','intent','DIALOGFLOWV2_INTENTDISPLAYNAME','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','providerName','providerResponse','stringify','fulfillmentText','all','message','lodash','moment','bluebird','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body'];(function(_0x541152,_0x4c4d20){var _0x188bd3=function(_0xa8d128){while(--_0xa8d128){_0x541152['push'](_0x541152['shift']());}};_0x188bd3(++_0x4c4d20);}(_0xc305,0xcf));var _0x5c30=function(_0x44bcb0,_0x235aa9){_0x44bcb0=_0x44bcb0-0x0;var _0xfaf881=_0xc305[_0x44bcb0];return _0xfaf881;};'use strict';var _=require(_0x5c30('0x0'));var dialogflow=require('dialogflow');var md5=require('md5');var moment=require(_0x5c30('0x1'));var Promise=require(_0x5c30('0x2'));var logger=require('../../../../config/logger')(_0x5c30('0x3'));var utils=require(_0x5c30('0x4'));var rpc={'chatMessage':require(_0x5c30('0x5')),'openchannelMessage':require(_0x5c30('0x6')),'mailMessage':require(_0x5c30('0x7')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x5c30('0x8')),'whatsappMessage':require(_0x5c30('0x9'))};function createMessage(_0x175135,_0x2b436c,_0x3d6598,_0x1d6f15){return new Promise(function(_0x37aeb9,_0x11a01f){var _0x4f49e0=_[_0x5c30('0xa')](_0x3d6598);_0x4f49e0[_0x5c30('0xb')]=_0x1d6f15;return rpc[_0x2b436c+'Message'][_0x5c30('0xc')](_0x4f49e0)[_0x5c30('0xd')](function(){logger[_0x5c30('0xe')](_0x5c30('0xf'),_0x175135,_0x4f49e0[_0x5c30('0xb')]);_0x37aeb9();})['catch'](function(_0x362765){logger[_0x5c30('0x10')](_0x5c30('0xf'),_0x175135,JSON['stringify'](_0x362765));_0x11a01f(_0x362765);});});}exports[_0x5c30('0x11')]=function(_0x14a8a8,_0x40616e){return function(_0x3b37ee){try{if(!_[_0x5c30('0x12')](this['interaction'][_0x5c30('0x13')])){logger[_0x5c30('0xe')](_0x5c30('0xf'),_0x14a8a8,_0x5c30('0x14'));return _0x3b37ee[_0x5c30('0x15')]();}var _0x21e1dd={'ContactId':this[_0x5c30('0x16')]['id'],'sentAt':moment()['format'](_0x5c30('0x17')),'direction':'out'};if(this[_0x5c30('0x18')]===_0x5c30('0x19')||this[_0x5c30('0x18')]===_0x5c30('0x1a')){_0x21e1dd[_0x5c30('0x1b')]=this[_0x5c30('0x1c')][_0x5c30('0x1b')];}var _0xe7db37=this[_0x5c30('0x18')];if(_0xe7db37===_0x5c30('0x1d')){_0x21e1dd[_0x5c30('0x1e')]=this['account']['id'];}else{_0x21e1dd[_[_0x5c30('0x1f')](_0xe7db37)+_0x5c30('0x20')]=this['account']['id'];}_0x21e1dd[_[_0x5c30('0x1f')](_0xe7db37)+_0x5c30('0x21')]=this['interaction']['id'];if(this[_0x5c30('0x1c')][_0x5c30('0x22')]){var _0x3cf6b4=_0x40616e[0x4];if(!_['isEmpty'](_0x3cf6b4)){_0x21e1dd[_0x5c30('0xb')]=utils[_0x5c30('0x23')](_0x3cf6b4,this);return rpc[_0xe7db37+'Message']['create'](_0x21e1dd)[_0x5c30('0xd')](function(_0x1b4d11){logger[_0x5c30('0xe')](_0x5c30('0xf'),_0x14a8a8,_0x21e1dd['body']);})[_0x5c30('0x24')](function(_0x268b8f){logger[_0x5c30('0x10')](_0x5c30('0xf'),_0x14a8a8,JSON['stringify'](_0x268b8f));})[_0x5c30('0x25')](function(){logger[_0x5c30('0xe')](_0x5c30('0x26'),_0x14a8a8);_0x3b37ee[_0x5c30('0x27')]();});}else{logger[_0x5c30('0xe')](_0x5c30('0x28'),_0x14a8a8);_0x3b37ee['stop']();}}else{var _0x43369c=this;var _0x5546b9=_0x40616e[0x2][_0x5c30('0x29')](/\\n/g,'\x0a');var _0x44b4b6={'credentials':{'private_key':_0x5546b9,'client_email':_0x40616e[0x1]}};var _0x219a05=new dialogflow[(_0x5c30('0x2a'))](_0x44b4b6);var _0x4041a5=_0x219a05[_0x5c30('0x2b')](_0x40616e[0x0],md5(_0x43369c[_0x5c30('0x1c')]['id']));var _0x5cf814={'session':_0x4041a5,'queryInput':{'text':{'text':_0x43369c['message']['body'],'languageCode':_0x40616e[0x3]||'en'}}};return _0x219a05[_0x5c30('0x2c')](_0x5cf814)[_0x5c30('0xd')](function(_0x2be404){if(_0x2be404&&_0x2be404[_0x5c30('0x2d')]){_0x43369c[_0x5c30('0xb')][_0x5c30('0x2e')]=_0x2be404;var _0x13e84c=_0x2be404[0x0];var _0x12c3ef=_0x13e84c[_0x5c30('0x2f')][_0x5c30('0x30')]&&_0x13e84c['queryResult']['diagnosticInfo'][_0x5c30('0x31')]?_0x13e84c[_0x5c30('0x2f')]['diagnosticInfo']['fields'][_0x5c30('0x32')]['boolValue']:![];_0x43369c['body'][_0x5c30('0x33')]=_0x13e84c[_0x5c30('0x2f')][_0x5c30('0x34')];_0x43369c[_0x5c30('0xb')][_0x5c30('0x35')]=_0x13e84c[_0x5c30('0x2f')][_0x5c30('0x36')];_0x43369c['body'][_0x5c30('0x37')]=_0x13e84c[_0x5c30('0x2f')][_0x5c30('0x30')]&&_0x13e84c['queryResult'][_0x5c30('0x30')][_0x5c30('0x31')]?_0x13e84c[_0x5c30('0x2f')][_0x5c30('0x30')][_0x5c30('0x31')][_0x5c30('0x32')][_0x5c30('0x38')]:![];_0x43369c[_0x5c30('0xb')][_0x5c30('0x39')]=_0x13e84c['queryResult'][_0x5c30('0x3a')]['name'];_0x43369c[_0x5c30('0xb')][_0x5c30('0x3b')]=_0x13e84c['queryResult'][_0x5c30('0x3a')]['displayName'];_0x43369c['body'][_0x5c30('0x3c')]=_0x13e84c[_0x5c30('0x2f')][_0x5c30('0x3a')][_0x5c30('0x3d')];_0x43369c[_0x5c30('0xb')][_0x5c30('0x3e')]=_0x13e84c['queryResult'][_0x5c30('0x3f')];_0x43369c['body'][_0x5c30('0x40')]=_0x13e84c['queryResult'][_0x5c30('0x41')];_0x43369c[_0x5c30('0xb')][_0x5c30('0x42')]=_0x13e84c[_0x5c30('0x2f')]['intentDetectionConfidence'];_0x21e1dd[_0x5c30('0x43')]='dialogflowV2';_0x21e1dd[_0x5c30('0x44')]=JSON[_0x5c30('0x45')](_0x2be404);var _0xda3e1=[];for(var _0x14116b=0x0;_0x14116b<_0x2be404['length'];_0x14116b++){var _0xb80b34=_0x2be404[_0x14116b];if(_0xb80b34&&_0xb80b34[_0x5c30('0x2f')]&&_0xb80b34[_0x5c30('0x2f')][_0x5c30('0x46')]){_0xda3e1['push'](createMessage(_0x14a8a8,_0xe7db37,_0x21e1dd,_0xb80b34['queryResult'][_0x5c30('0x46')]));}}return Promise[_0x5c30('0x47')](_0xda3e1)[_0x5c30('0xd')](function(){if(_0x12c3ef){_0x3b37ee[_0x5c30('0x15')]();}else{_0x3b37ee[_0x5c30('0x27')]();}})[_0x5c30('0x24')](function(_0x4d9203){logger[_0x5c30('0x10')]('[%s][DIALOGFLOWV2]\x20%s',_0x14a8a8,JSON['stringify'](_0x4d9203));_0x3b37ee[_0x5c30('0x15')]();});}})[_0x5c30('0x24')](function(_0x585806){logger[_0x5c30('0x10')](_0x5c30('0xf'),_0x14a8a8,_0x585806[_0x5c30('0x48')]);_0x3b37ee[_0x5c30('0x15')]();});}}catch(_0x3630a3){logger[_0x5c30('0x10')](_0x5c30('0xf'),_0x14a8a8,JSON[_0x5c30('0x45')](_0x3630a3));_0x3b37ee['stop']();}};};