587cf4cee902e0913d04fcda76ca122b4a353f8e
[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 _0x038b=['moment','apiai-promise','md5','../../../../config/logger','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage','UserId','info','next','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','interaction','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','body','getMustacheRender','Message','create','[%s][DIALOGFLOW]\x20%s','catch','error','stringify','finally','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','dialogflow','result','fulfillment','speech','providerName','metadata','endConversation','message'];(function(_0x416468,_0x2e7a72){var _0x2ee9b7=function(_0xf354ce){while(--_0xf354ce){_0x416468['push'](_0x416468['shift']());}};_0x2ee9b7(++_0x2e7a72);}(_0x038b,0x114));var _0xb038=function(_0x39eed0,_0x202199){_0x39eed0=_0x39eed0-0x0;var _0x482c52=_0x038b[_0x39eed0];return _0x482c52;};'use strict';var _=require('lodash');var moment=require(_0xb038('0x0'));var apiai=require(_0xb038('0x1'));var md5=require(_0xb038('0x2'));var utils=require('./utils');var logger=require(_0xb038('0x3'))('routing');var rpc={'chatMessage':require(_0xb038('0x4')),'openchannelMessage':require(_0xb038('0x5')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0xb038('0x6')),'faxMessage':require(_0xb038('0x7')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports['consequence']=function(_0x2e3e64,_0x1b077a){return function(_0x1534a9){try{if(!_['isNil'](this['interaction'][_0xb038('0x8')])){logger[_0xb038('0x9')]('[%s][DIALOGFLOW]\x20%s',_0x2e3e64,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x1534a9[_0xb038('0xa')]();}var _0x2d1ae5={'ContactId':this['contact']['id'],'sentAt':moment()[_0xb038('0xb')](_0xb038('0xc')),'direction':_0xb038('0xd')};if(this[_0xb038('0xe')]===_0xb038('0xf')||this[_0xb038('0xe')]===_0xb038('0x10')){_0x2d1ae5[_0xb038('0x11')]=this[_0xb038('0x12')][_0xb038('0x11')];}var _0x60f332=this[_0xb038('0xe')];if(_0x60f332===_0xb038('0x13')){_0x2d1ae5[_0xb038('0x14')]=this[_0xb038('0x15')]['id'];}else{_0x2d1ae5[_[_0xb038('0x16')](_0x60f332)+_0xb038('0x17')]=this['account']['id'];}_0x2d1ae5[_[_0xb038('0x16')](_0x60f332)+_0xb038('0x18')]=this[_0xb038('0x12')]['id'];if(this[_0xb038('0x12')][_0xb038('0x19')]){var _0x2b4173=_0x1b077a[0x2];if(!_['isEmpty'](_0x2b4173)){_0x2d1ae5[_0xb038('0x1a')]=utils[_0xb038('0x1b')](_0x2b4173,this);return rpc[_0x60f332+_0xb038('0x1c')][_0xb038('0x1d')](_0x2d1ae5)['then'](function(_0x49b237){logger[_0xb038('0x9')](_0xb038('0x1e'),_0x2e3e64,_0x2d1ae5[_0xb038('0x1a')]);})[_0xb038('0x1f')](function(_0x4fd2e8){logger[_0xb038('0x20')](_0xb038('0x1e'),_0x2e3e64,JSON[_0xb038('0x21')](_0x4fd2e8));})[_0xb038('0x22')](function(){logger[_0xb038('0x9')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x2e3e64);_0x1534a9[_0xb038('0x23')]();});}else{logger[_0xb038('0x9')](_0xb038('0x24'),_0x2e3e64);_0x1534a9[_0xb038('0x23')]();}}else{var _0x5f123d=this;var _0x2812c9=apiai(_0x1b077a[0x0],{'language':_0x1b077a[0x1]||'en'});return _0x2812c9[_0xb038('0x25')](this['message'][_0xb038('0x1a')],{'sessionId':md5(this[_0xb038('0x12')]['id'])})['then'](function(_0x241329){_0x5f123d['body'][_0xb038('0x26')]=_0x241329;_0x2d1ae5[_0xb038('0x1a')]=_0x241329[_0xb038('0x27')][_0xb038('0x28')][_0xb038('0x29')];_0x2d1ae5[_0xb038('0x2a')]=_0xb038('0x26');_0x2d1ae5['providerResponse']=JSON[_0xb038('0x21')](_0x241329);return rpc[_0x60f332+_0xb038('0x1c')][_0xb038('0x1d')](_0x2d1ae5)['then'](function(_0xa8fe18){logger[_0xb038('0x9')](_0xb038('0x1e'),_0x2e3e64,_0x2d1ae5['body']);if(_0x241329[_0xb038('0x27')][_0xb038('0x2b')][_0xb038('0x2c')]){_0x1534a9[_0xb038('0xa')]();}else{_0x1534a9[_0xb038('0x23')]();}})['catch'](function(_0x1783d4){logger[_0xb038('0x20')](_0xb038('0x1e'),_0x2e3e64,JSON[_0xb038('0x21')](_0x1783d4));_0x1534a9[_0xb038('0xa')]();});})[_0xb038('0x1f')](function(_0x29a0d7){logger[_0xb038('0x20')](_0xb038('0x1e'),_0x2e3e64,_0x29a0d7[_0xb038('0x2d')]);_0x1534a9[_0xb038('0xa')]();});}}catch(_0x1a741f){logger[_0xb038('0x20')]('[%s][DIALOGFLOW]\x20%s',_0x2e3e64,JSON[_0xb038('0x21')](_0x1a741f));_0x1534a9['stop']();}};};