Built motion from commit 3e059bc2.|2.5.32
[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 _0xc492=['sms','whatsapp','phone','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','getMustacheRender','Message','create','[%s][DIALOGFLOW]\x20%s','stringify','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','message','then','result','fulfillment','speech','dialogflow','providerResponse','endConversation','catch','error','next','lodash','moment','apiai-promise','../../../../config/logger','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','consequence','isNil','interaction','UserId','info','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','YYYY-MM-DD\x20HH:mm:ss','channel'];(function(_0x5757b2,_0xe107b1){var _0x64c03e=function(_0x46a67a){while(--_0x46a67a){_0x5757b2['push'](_0x5757b2['shift']());}};_0x64c03e(++_0xe107b1);}(_0xc492,0xd7));var _0x2c49=function(_0x4a9824,_0x561657){_0x4a9824=_0x4a9824-0x0;var _0xc03315=_0xc492[_0x4a9824];return _0xc03315;};'use strict';var _=require(_0x2c49('0x0'));var moment=require(_0x2c49('0x1'));var apiai=require(_0x2c49('0x2'));var md5=require('md5');var utils=require('./utils');var logger=require(_0x2c49('0x3'))('routing');var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x2c49('0x4')),'mailMessage':require(_0x2c49('0x5')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x2c49('0x6')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x2c49('0x7')]=function(_0x9c10f7,_0x4c76dd){return function(_0xe7b4cb){try{if(!_[_0x2c49('0x8')](this[_0x2c49('0x9')][_0x2c49('0xa')])){logger[_0x2c49('0xb')]('[%s][DIALOGFLOW]\x20%s',_0x9c10f7,_0x2c49('0xc'));return _0xe7b4cb['next']();}var _0x493cd2={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0x2c49('0xd')),'direction':'out'};if(this[_0x2c49('0xe')]===_0x2c49('0xf')||this['channel']===_0x2c49('0x10')){_0x493cd2[_0x2c49('0x11')]=this[_0x2c49('0x9')][_0x2c49('0x11')];}var _0x24fc6e=this[_0x2c49('0xe')];if(_0x24fc6e==='chat'){_0x493cd2[_0x2c49('0x12')]=this[_0x2c49('0x13')]['id'];}else{_0x493cd2[_[_0x2c49('0x14')](_0x24fc6e)+_0x2c49('0x15')]=this[_0x2c49('0x13')]['id'];}_0x493cd2[_['upperFirst'](_0x24fc6e)+_0x2c49('0x16')]=this[_0x2c49('0x9')]['id'];if(this[_0x2c49('0x9')][_0x2c49('0x17')]){var _0x495771=_0x4c76dd[0x2];if(!_[_0x2c49('0x18')](_0x495771)){_0x493cd2[_0x2c49('0x19')]=utils[_0x2c49('0x1a')](_0x495771,this);return rpc[_0x24fc6e+_0x2c49('0x1b')][_0x2c49('0x1c')](_0x493cd2)['then'](function(_0x3001af){logger[_0x2c49('0xb')](_0x2c49('0x1d'),_0x9c10f7,_0x493cd2[_0x2c49('0x19')]);})['catch'](function(_0x1392dc){logger['error'](_0x2c49('0x1d'),_0x9c10f7,JSON[_0x2c49('0x1e')](_0x1392dc));})['finally'](function(){logger['info'](_0x2c49('0x1f'),_0x9c10f7);_0xe7b4cb[_0x2c49('0x20')]();});}else{logger[_0x2c49('0xb')](_0x2c49('0x21'),_0x9c10f7);_0xe7b4cb[_0x2c49('0x20')]();}}else{var _0x294c70=this;var _0x33c09f=apiai(_0x4c76dd[0x0],{'language':_0x4c76dd[0x1]||'en'});return _0x33c09f[_0x2c49('0x22')](this[_0x2c49('0x23')]['body'],{'sessionId':md5(this[_0x2c49('0x9')]['id'])})[_0x2c49('0x24')](function(_0x4037b0){_0x294c70[_0x2c49('0x19')]['dialogflow']=_0x4037b0;_0x493cd2[_0x2c49('0x19')]=_0x4037b0[_0x2c49('0x25')][_0x2c49('0x26')][_0x2c49('0x27')];_0x493cd2['providerName']=_0x2c49('0x28');_0x493cd2[_0x2c49('0x29')]=JSON[_0x2c49('0x1e')](_0x4037b0);return rpc[_0x24fc6e+'Message'][_0x2c49('0x1c')](_0x493cd2)[_0x2c49('0x24')](function(_0x5039f2){logger[_0x2c49('0xb')]('[%s][DIALOGFLOW]\x20%s',_0x9c10f7,_0x493cd2['body']);if(_0x4037b0[_0x2c49('0x25')]['metadata'][_0x2c49('0x2a')]){_0xe7b4cb['next']();}else{_0xe7b4cb[_0x2c49('0x20')]();}})[_0x2c49('0x2b')](function(_0x2b2dd5){logger[_0x2c49('0x2c')](_0x2c49('0x1d'),_0x9c10f7,JSON[_0x2c49('0x1e')](_0x2b2dd5));_0xe7b4cb[_0x2c49('0x2d')]();});})[_0x2c49('0x2b')](function(_0x184d0d){logger[_0x2c49('0x2c')]('[%s][DIALOGFLOW]\x20%s',_0x9c10f7,_0x184d0d[_0x2c49('0x23')]);_0xe7b4cb['next']();});}}catch(_0x20ebca){logger[_0x2c49('0x2c')](_0x2c49('0x1d'),_0x9c10f7,JSON[_0x2c49('0x1e')](_0x20ebca));_0xe7b4cb[_0x2c49('0x20')]();}};};