8efb4cfae2cc06afb073ab967ccf730a61be25ff
[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 _0x03db=['whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','isEmpty','body','getMustacheRender','Message','create','catch','error','stringify','finally','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','stop','textRequest','result','speech','providerName','dialogflow','providerResponse','then','metadata','endConversation','message','lodash','moment','apiai-promise','md5','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','isNil','interaction','UserId','info','[%s][DIALOGFLOW]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','out','channel'];(function(_0xf71120,_0x25b7f9){var _0xbe2fd3=function(_0x1acbdd){while(--_0x1acbdd){_0xf71120['push'](_0xf71120['shift']());}};_0xbe2fd3(++_0x25b7f9);}(_0x03db,0x156));var _0xb03d=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x03db[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xb03d('0x0'));var moment=require(_0xb03d('0x1'));var apiai=require(_0xb03d('0x2'));var md5=require(_0xb03d('0x3'));var utils=require('./utils');var logger=require(_0xb03d('0x4'))(_0xb03d('0x5'));var rpc={'chatMessage':require(_0xb03d('0x6')),'openchannelMessage':require(_0xb03d('0x7')),'mailMessage':require(_0xb03d('0x8')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xb03d('0x9')),'whatsappMessage':require(_0xb03d('0xa'))};exports[_0xb03d('0xb')]=function(_0x57a19b,_0xedddf){return function(_0x5f1238){try{if(!_[_0xb03d('0xc')](this[_0xb03d('0xd')][_0xb03d('0xe')])){logger[_0xb03d('0xf')](_0xb03d('0x10'),_0x57a19b,_0xb03d('0x11'));return _0x5f1238[_0xb03d('0x12')]();}var _0x576e5a={'ContactId':this[_0xb03d('0x13')]['id'],'sentAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0xb03d('0x14')};if(this[_0xb03d('0x15')]==='sms'||this['channel']===_0xb03d('0x16')){_0x576e5a['phone']=this['interaction'][_0xb03d('0x17')];}var _0x5572b5=this[_0xb03d('0x15')];if(_0x5572b5===_0xb03d('0x18')){_0x576e5a[_0xb03d('0x19')]=this[_0xb03d('0x1a')]['id'];}else{_0x576e5a[_[_0xb03d('0x1b')](_0x5572b5)+_0xb03d('0x1c')]=this[_0xb03d('0x1a')]['id'];}_0x576e5a[_['upperFirst'](_0x5572b5)+_0xb03d('0x1d')]=this[_0xb03d('0xd')]['id'];if(this[_0xb03d('0xd')]['created']){var _0x5ca81f=_0xedddf[0x2];if(!_[_0xb03d('0x1e')](_0x5ca81f)){_0x576e5a[_0xb03d('0x1f')]=utils[_0xb03d('0x20')](_0x5ca81f,this);return rpc[_0x5572b5+_0xb03d('0x21')][_0xb03d('0x22')](_0x576e5a)['then'](function(_0xd2801a){logger[_0xb03d('0xf')]('[%s][DIALOGFLOW]\x20%s',_0x57a19b,_0x576e5a[_0xb03d('0x1f')]);})[_0xb03d('0x23')](function(_0xe1b260){logger[_0xb03d('0x24')](_0xb03d('0x10'),_0x57a19b,JSON[_0xb03d('0x25')](_0xe1b260));})[_0xb03d('0x26')](function(){logger[_0xb03d('0xf')](_0xb03d('0x27'),_0x57a19b);_0x5f1238['stop']();});}else{logger['info'](_0xb03d('0x28'),_0x57a19b);_0x5f1238[_0xb03d('0x29')]();}}else{var _0x10c907=this;var _0x809c5f=apiai(_0xedddf[0x0],{'language':_0xedddf[0x1]||'en'});return _0x809c5f[_0xb03d('0x2a')](this['message'][_0xb03d('0x1f')],{'sessionId':md5(this[_0xb03d('0xd')]['id'])})['then'](function(_0x2e6783){_0x10c907[_0xb03d('0x1f')]['dialogflow']=_0x2e6783;_0x576e5a[_0xb03d('0x1f')]=_0x2e6783[_0xb03d('0x2b')]['fulfillment'][_0xb03d('0x2c')];_0x576e5a[_0xb03d('0x2d')]=_0xb03d('0x2e');_0x576e5a[_0xb03d('0x2f')]=JSON['stringify'](_0x2e6783);return rpc[_0x5572b5+_0xb03d('0x21')]['create'](_0x576e5a)[_0xb03d('0x30')](function(_0x1bc1d1){logger[_0xb03d('0xf')]('[%s][DIALOGFLOW]\x20%s',_0x57a19b,_0x576e5a['body']);if(_0x2e6783['result'][_0xb03d('0x31')][_0xb03d('0x32')]){_0x5f1238[_0xb03d('0x12')]();}else{_0x5f1238['stop']();}})[_0xb03d('0x23')](function(_0x240a5f){logger[_0xb03d('0x24')](_0xb03d('0x10'),_0x57a19b,JSON[_0xb03d('0x25')](_0x240a5f));_0x5f1238['next']();});})[_0xb03d('0x23')](function(_0x1a0f74){logger[_0xb03d('0x24')](_0xb03d('0x10'),_0x57a19b,_0x1a0f74[_0xb03d('0x33')]);_0x5f1238[_0xb03d('0x12')]();});}}catch(_0x356b1c){logger[_0xb03d('0x24')](_0xb03d('0x10'),_0x57a19b,JSON[_0xb03d('0x25')](_0x356b1c));_0x5f1238['stop']();}};};