711091c57635bb995b8079920d43599feacfbd06
[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 _0x9585=['channel','whatsapp','phone','chat','ChatWebsiteId','upperFirst','AccountId','account','created','isEmpty','body','Message','create','then','catch','error','finally','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','dialogflow','result','fulfillment','speech','providerResponse','stringify','metadata','next','moment','md5','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','interaction','info','[%s][DIALOGFLOW]\x20%s','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','sms'];(function(_0x360af3,_0x1688a7){var _0x249791=function(_0x118c57){while(--_0x118c57){_0x360af3['push'](_0x360af3['shift']());}};_0x249791(++_0x1688a7);}(_0x9585,0x15e));var _0x5958=function(_0x50e205,_0xf703f1){_0x50e205=_0x50e205-0x0;var _0x49ee6c=_0x9585[_0x50e205];return _0x49ee6c;};'use strict';var _=require('lodash');var moment=require(_0x5958('0x0'));var apiai=require('apiai-promise');var md5=require(_0x5958('0x1'));var utils=require(_0x5958('0x2'));var logger=require(_0x5958('0x3'))(_0x5958('0x4'));var rpc={'chatMessage':require(_0x5958('0x5')),'openchannelMessage':require(_0x5958('0x6')),'mailMessage':require(_0x5958('0x7')),'smsMessage':require(_0x5958('0x8')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0x5958('0x9'))};exports['consequence']=function(_0xc050d5,_0xd655ec){return function(_0x264827){try{if(!_['isNil'](this[_0x5958('0xa')]['UserId'])){logger[_0x5958('0xb')](_0x5958('0xc'),_0xc050d5,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x264827['next']();}var _0x3511c4={'ContactId':this[_0x5958('0xd')]['id'],'sentAt':moment()[_0x5958('0xe')](_0x5958('0xf')),'direction':_0x5958('0x10')};if(this['channel']===_0x5958('0x11')||this[_0x5958('0x12')]===_0x5958('0x13')){_0x3511c4[_0x5958('0x14')]=this[_0x5958('0xa')]['phone'];}var _0x564ec5=this[_0x5958('0x12')];if(_0x564ec5===_0x5958('0x15')){_0x3511c4[_0x5958('0x16')]=this['account']['id'];}else{_0x3511c4[_[_0x5958('0x17')](_0x564ec5)+_0x5958('0x18')]=this[_0x5958('0x19')]['id'];}_0x3511c4[_[_0x5958('0x17')](_0x564ec5)+'InteractionId']=this[_0x5958('0xa')]['id'];if(this[_0x5958('0xa')][_0x5958('0x1a')]){var _0x36bb85=_0xd655ec[0x2];if(!_[_0x5958('0x1b')](_0x36bb85)){_0x3511c4[_0x5958('0x1c')]=utils['getMustacheRender'](_0x36bb85,this);return rpc[_0x564ec5+_0x5958('0x1d')][_0x5958('0x1e')](_0x3511c4)[_0x5958('0x1f')](function(_0x26c29d){logger[_0x5958('0xb')]('[%s][DIALOGFLOW]\x20%s',_0xc050d5,_0x3511c4[_0x5958('0x1c')]);})[_0x5958('0x20')](function(_0x40556e){logger[_0x5958('0x21')](_0x5958('0xc'),_0xc050d5,JSON['stringify'](_0x40556e));})[_0x5958('0x22')](function(){logger['info']('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0xc050d5);_0x264827[_0x5958('0x23')]();});}else{logger['info'](_0x5958('0x24'),_0xc050d5);_0x264827[_0x5958('0x23')]();}}else{var _0x282c7a=this;var _0x36ff66=apiai(_0xd655ec[0x0],{'language':_0xd655ec[0x1]||'en'});return _0x36ff66[_0x5958('0x25')](this['message']['body'],{'sessionId':md5(this['interaction']['id'])})[_0x5958('0x1f')](function(_0x1f1a87){_0x282c7a[_0x5958('0x1c')][_0x5958('0x26')]=_0x1f1a87;_0x3511c4['body']=_0x1f1a87[_0x5958('0x27')][_0x5958('0x28')][_0x5958('0x29')];_0x3511c4['providerName']=_0x5958('0x26');_0x3511c4[_0x5958('0x2a')]=JSON[_0x5958('0x2b')](_0x1f1a87);return rpc[_0x564ec5+_0x5958('0x1d')][_0x5958('0x1e')](_0x3511c4)[_0x5958('0x1f')](function(_0x3afb9e){logger['info']('[%s][DIALOGFLOW]\x20%s',_0xc050d5,_0x3511c4[_0x5958('0x1c')]);if(_0x1f1a87[_0x5958('0x27')][_0x5958('0x2c')]['endConversation']){_0x264827[_0x5958('0x2d')]();}else{_0x264827[_0x5958('0x23')]();}})[_0x5958('0x20')](function(_0x3145a7){logger[_0x5958('0x21')](_0x5958('0xc'),_0xc050d5,JSON[_0x5958('0x2b')](_0x3145a7));_0x264827['next']();});})['catch'](function(_0x9725ce){logger[_0x5958('0x21')](_0x5958('0xc'),_0xc050d5,_0x9725ce['message']);_0x264827['next']();});}}catch(_0x440737){logger[_0x5958('0x21')](_0x5958('0xc'),_0xc050d5,JSON[_0x5958('0x2b')](_0x440737));_0x264827[_0x5958('0x23')]();}};};