Built motion from commit c116dc8b.|2.6.30
[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 _0x2000=['bluebird','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','clone','body','Message','then','info','catch','error','[%s][DIALOGFLOWV2]\x20%s','consequence','isNil','interaction','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','account','upperFirst','AccountId','InteractionId','getMustacheRender','stringify','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','sessionPath','detectIntent','dialogflowV2','diagnosticInfo','queryResult','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','providerResponse','length','fulfillmentText','all','next','message','lodash','moment'];(function(_0x3bbe85,_0x2000f7){var _0x433f66=function(_0x276d1a){while(--_0x276d1a){_0x3bbe85['push'](_0x3bbe85['shift']());}};_0x433f66(++_0x2000f7);}(_0x2000,0x161));var _0x0200=function(_0x170994,_0x5adc66){_0x170994=_0x170994-0x0;var _0x3c89a3=_0x2000[_0x170994];return _0x3c89a3;};'use strict';var _=require(_0x0200('0x0'));var dialogflow=require('dialogflow');var md5=require('md5');var moment=require(_0x0200('0x1'));var Promise=require(_0x0200('0x2'));var logger=require(_0x0200('0x3'))(_0x0200('0x4'));var utils=require('./utils');var rpc={'chatMessage':require(_0x0200('0x5')),'openchannelMessage':require(_0x0200('0x6')),'mailMessage':require(_0x0200('0x7')),'smsMessage':require(_0x0200('0x8')),'faxMessage':require(_0x0200('0x9')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x417599,_0x7d0dbb,_0x2a3d2f,_0x882060){return new Promise(function(_0x44dc07,_0x7550ed){var _0x434849=_[_0x0200('0xa')](_0x2a3d2f);_0x434849[_0x0200('0xb')]=_0x882060;return rpc[_0x7d0dbb+_0x0200('0xc')]['create'](_0x434849)[_0x0200('0xd')](function(){logger[_0x0200('0xe')]('[%s][DIALOGFLOWV2]\x20%s',_0x417599,_0x434849[_0x0200('0xb')]);_0x44dc07();})[_0x0200('0xf')](function(_0x2940f6){logger[_0x0200('0x10')](_0x0200('0x11'),_0x417599,JSON['stringify'](_0x2940f6));_0x7550ed(_0x2940f6);});});}exports[_0x0200('0x12')]=function(_0x2b57be,_0x4c317c){return function(_0x1215a9){try{if(!_[_0x0200('0x13')](this[_0x0200('0x14')]['UserId'])){logger[_0x0200('0xe')](_0x0200('0x11'),_0x2b57be,_0x0200('0x15'));return _0x1215a9['next']();}var _0x515ba3={'ContactId':this[_0x0200('0x16')]['id'],'sentAt':moment()[_0x0200('0x17')](_0x0200('0x18')),'direction':_0x0200('0x19')};if(this[_0x0200('0x1a')]===_0x0200('0x1b')||this[_0x0200('0x1a')]===_0x0200('0x1c')){_0x515ba3[_0x0200('0x1d')]=this[_0x0200('0x14')]['phone'];}var _0x43219d=this[_0x0200('0x1a')];if(_0x43219d==='chat'){_0x515ba3['ChatWebsiteId']=this[_0x0200('0x1e')]['id'];}else{_0x515ba3[_[_0x0200('0x1f')](_0x43219d)+_0x0200('0x20')]=this[_0x0200('0x1e')]['id'];}_0x515ba3[_[_0x0200('0x1f')](_0x43219d)+_0x0200('0x21')]=this['interaction']['id'];if(this[_0x0200('0x14')]['created']){var _0x78b113=_0x4c317c[0x4];if(!_['isEmpty'](_0x78b113)){_0x515ba3[_0x0200('0xb')]=utils[_0x0200('0x22')](_0x78b113,this);return rpc[_0x43219d+_0x0200('0xc')]['create'](_0x515ba3)[_0x0200('0xd')](function(_0x56392a){logger[_0x0200('0xe')](_0x0200('0x11'),_0x2b57be,_0x515ba3['body']);})[_0x0200('0xf')](function(_0x145bda){logger['error'](_0x0200('0x11'),_0x2b57be,JSON[_0x0200('0x23')](_0x145bda));})[_0x0200('0x24')](function(){logger[_0x0200('0xe')](_0x0200('0x25'),_0x2b57be);_0x1215a9[_0x0200('0x26')]();});}else{logger[_0x0200('0xe')](_0x0200('0x27'),_0x2b57be);_0x1215a9[_0x0200('0x26')]();}}else{var _0x60334c=this;var _0x340c6c=_0x4c317c[0x2]['replace'](/\\n/g,'\x0a');var _0x29f6ff={'credentials':{'private_key':_0x340c6c,'client_email':_0x4c317c[0x1]}};var _0x1b5178=new dialogflow['SessionsClient'](_0x29f6ff);var _0x5464b2=_0x1b5178[_0x0200('0x28')](_0x4c317c[0x0],md5(_0x60334c[_0x0200('0x14')]['id']));var _0xe320a7={'session':_0x5464b2,'queryInput':{'text':{'text':_0x60334c['message'][_0x0200('0xb')],'languageCode':_0x4c317c[0x3]||'en'}}};return _0x1b5178[_0x0200('0x29')](_0xe320a7)[_0x0200('0xd')](function(_0x53f4b9){if(_0x53f4b9&&_0x53f4b9['length']){_0x60334c[_0x0200('0xb')][_0x0200('0x2a')]=_0x53f4b9;var _0x121c4a=_0x53f4b9[0x0];var _0x51342c=_0x121c4a['queryResult'][_0x0200('0x2b')]&&_0x121c4a[_0x0200('0x2c')][_0x0200('0x2b')][_0x0200('0x2d')]?_0x121c4a[_0x0200('0x2c')][_0x0200('0x2b')]['fields'][_0x0200('0x2e')][_0x0200('0x2f')]:![];_0x60334c[_0x0200('0xb')][_0x0200('0x30')]=_0x121c4a[_0x0200('0x2c')][_0x0200('0x31')];_0x60334c[_0x0200('0xb')][_0x0200('0x32')]=_0x121c4a[_0x0200('0x2c')][_0x0200('0x33')];_0x60334c[_0x0200('0xb')][_0x0200('0x34')]=_0x121c4a['queryResult'][_0x0200('0x2b')]&&_0x121c4a[_0x0200('0x2c')][_0x0200('0x2b')][_0x0200('0x2d')]?_0x121c4a['queryResult'][_0x0200('0x2b')][_0x0200('0x2d')]['end_conversation']['boolValue']:![];_0x60334c[_0x0200('0xb')][_0x0200('0x35')]=_0x121c4a[_0x0200('0x2c')][_0x0200('0x36')]['name'];_0x60334c[_0x0200('0xb')][_0x0200('0x37')]=_0x121c4a[_0x0200('0x2c')]['intent'][_0x0200('0x38')];_0x60334c[_0x0200('0xb')][_0x0200('0x39')]=_0x121c4a[_0x0200('0x2c')][_0x0200('0x36')][_0x0200('0x3a')];_0x60334c[_0x0200('0xb')][_0x0200('0x3b')]=_0x121c4a[_0x0200('0x2c')]['languageCode'];_0x60334c[_0x0200('0xb')][_0x0200('0x3c')]=_0x121c4a[_0x0200('0x2c')][_0x0200('0x3d')];_0x60334c[_0x0200('0xb')][_0x0200('0x3e')]=_0x121c4a[_0x0200('0x2c')][_0x0200('0x3f')];_0x515ba3[_0x0200('0x40')]='dialogflowV2';_0x515ba3[_0x0200('0x41')]=JSON['stringify'](_0x53f4b9);var _0x20e6c9=[];for(var _0x12b24d=0x0;_0x12b24d<_0x53f4b9[_0x0200('0x42')];_0x12b24d++){var _0x16108b=_0x53f4b9[_0x12b24d];if(_0x16108b&&_0x16108b[_0x0200('0x2c')]&&_0x16108b[_0x0200('0x2c')][_0x0200('0x43')]){_0x20e6c9['push'](createMessage(_0x2b57be,_0x43219d,_0x515ba3,_0x16108b[_0x0200('0x2c')]['fulfillmentText']));}}return Promise[_0x0200('0x44')](_0x20e6c9)[_0x0200('0xd')](function(){if(_0x51342c){_0x1215a9[_0x0200('0x45')]();}else{_0x1215a9[_0x0200('0x26')]();}})[_0x0200('0xf')](function(_0x2c6749){logger[_0x0200('0x10')](_0x0200('0x11'),_0x2b57be,JSON[_0x0200('0x23')](_0x2c6749));_0x1215a9['next']();});}})[_0x0200('0xf')](function(_0xa310ae){logger[_0x0200('0x10')]('[%s][DIALOGFLOWV2]\x20%s',_0x2b57be,_0xa310ae[_0x0200('0x46')],_0xa310ae['stack']);_0x1215a9[_0x0200('0x45')]();});}}catch(_0x38d72f){logger[_0x0200('0x10')](_0x0200('0x11'),_0x2b57be,JSON[_0x0200('0x23')](_0x38d72f));_0x1215a9[_0x0200('0x26')]();}};};