Built motion from commit (unavailable).|2.5.6
[motion2.git] / server / services / routing / server / applications / dialogflow.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 _0x3e9f=['./utils','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','isNil','interaction','info','[%s][DIALOGFLOW]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','ChatWebsiteId','account','AccountId','upperFirst','created','isEmpty','create','then','body','catch','error','stringify','finally','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','textRequest','dialogflow','result','Message','metadata','endConversation','next','message','lodash','moment','md5'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x3e9f,0xde));var _0xf3e9=function(_0x15bc81,_0x4d4f77){_0x15bc81=_0x15bc81-0x0;var _0x59440e=_0x3e9f[_0x15bc81];return _0x59440e;};'use strict';var _=require(_0xf3e9('0x0'));var moment=require(_0xf3e9('0x1'));var apiai=require('apiai-promise');var md5=require(_0xf3e9('0x2'));var utils=require(_0xf3e9('0x3'));var logger=require('../../../../config/logger')(_0xf3e9('0x4'));var rpc={'chatMessage':require(_0xf3e9('0x5')),'openchannelMessage':require(_0xf3e9('0x6')),'mailMessage':require(_0xf3e9('0x7')),'smsMessage':require(_0xf3e9('0x8')),'faxMessage':require(_0xf3e9('0x9')),'whatsappMessage':require(_0xf3e9('0xa'))};exports[_0xf3e9('0xb')]=function(_0x35ef8a,_0x587648){return function(_0xa567c8){try{if(!_[_0xf3e9('0xc')](this[_0xf3e9('0xd')]['UserId'])){logger[_0xf3e9('0xe')](_0xf3e9('0xf'),_0x35ef8a,_0xf3e9('0x10'));return _0xa567c8['next']();}var _0x45757c={'ContactId':this[_0xf3e9('0x11')]['id'],'sentAt':moment()[_0xf3e9('0x12')](_0xf3e9('0x13')),'direction':_0xf3e9('0x14')};var _0x4b877d=this[_0xf3e9('0x15')];if(_0x4b877d==='chat'){_0x45757c[_0xf3e9('0x16')]=this[_0xf3e9('0x17')]['id'];}else{_0x45757c[_['upperFirst'](_0x4b877d)+_0xf3e9('0x18')]=this[_0xf3e9('0x17')]['id'];}_0x45757c[_[_0xf3e9('0x19')](_0x4b877d)+'InteractionId']=this['interaction']['id'];if(this[_0xf3e9('0xd')][_0xf3e9('0x1a')]){var _0x770eea=_0x587648[0x2];if(!_[_0xf3e9('0x1b')](_0x770eea)){_0x45757c['body']=utils['getMustacheRender'](_0x770eea,this);return rpc[_0x4b877d+'Message'][_0xf3e9('0x1c')](_0x45757c)[_0xf3e9('0x1d')](function(_0x275939){logger['info']('[%s][DIALOGFLOW]\x20%s',_0x35ef8a,_0x45757c[_0xf3e9('0x1e')]);})[_0xf3e9('0x1f')](function(_0x5e1fb3){logger[_0xf3e9('0x20')]('[%s][DIALOGFLOW]\x20%s',_0x35ef8a,JSON[_0xf3e9('0x21')](_0x5e1fb3));})[_0xf3e9('0x22')](function(){logger[_0xf3e9('0xe')](_0xf3e9('0x23'),_0x35ef8a);_0xa567c8['stop']();});}else{logger[_0xf3e9('0xe')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x35ef8a);_0xa567c8[_0xf3e9('0x24')]();}}else{var _0x3aa5f0=this;var _0x316f38=apiai(_0x587648[0x0],{'language':_0x587648[0x1]||'en'});return _0x316f38[_0xf3e9('0x25')](this['message'][_0xf3e9('0x1e')],{'sessionId':md5(this['interaction']['id'])})['then'](function(_0x7a85bd){_0x3aa5f0['body'][_0xf3e9('0x26')]=_0x7a85bd;_0x45757c[_0xf3e9('0x1e')]=_0x7a85bd[_0xf3e9('0x27')]['fulfillment']['speech'];return rpc[_0x4b877d+_0xf3e9('0x28')][_0xf3e9('0x1c')](_0x45757c)[_0xf3e9('0x1d')](function(_0x4dd7bf){logger['info'](_0xf3e9('0xf'),_0x35ef8a,_0x45757c[_0xf3e9('0x1e')]);if(_0x7a85bd[_0xf3e9('0x27')][_0xf3e9('0x29')][_0xf3e9('0x2a')]){_0xa567c8[_0xf3e9('0x2b')]();}else{_0xa567c8[_0xf3e9('0x24')]();}})[_0xf3e9('0x1f')](function(_0x255ebc){logger[_0xf3e9('0x20')](_0xf3e9('0xf'),_0x35ef8a,JSON[_0xf3e9('0x21')](_0x255ebc));_0xa567c8[_0xf3e9('0x2b')]();});})[_0xf3e9('0x1f')](function(_0x1913c2){logger['error']('[%s][DIALOGFLOW]\x20%s',_0x35ef8a,_0x1913c2[_0xf3e9('0x2c')]);_0xa567c8[_0xf3e9('0x2b')]();});}}catch(_0x13f363){logger['error']('[%s][DIALOGFLOW]\x20%s',_0x35ef8a,JSON[_0xf3e9('0x21')](_0x13f363));_0xa567c8[_0xf3e9('0x24')]();}};};