233d0013ad0fcd7efb123fcbdb008b3575a0be96
[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 _0xa381=['created','isEmpty','body','getMustacheRender','Message','create','then','catch','error','finally','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','message','dialogflow','result','fulfillment','speech','providerName','providerResponse','stringify','lodash','moment','./utils','../../../../config/logger','routing','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','consequence','interaction','UserId','info','[%s][DIALOGFLOW]\x20%s','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa381,0x79));var _0x1a38=function(_0x241207,_0x39a50c){_0x241207=_0x241207-0x0;var _0x26f4ce=_0xa381[_0x241207];return _0x26f4ce;};'use strict';var _=require(_0x1a38('0x0'));var moment=require(_0x1a38('0x1'));var apiai=require('apiai-promise');var md5=require('md5');var utils=require(_0x1a38('0x2'));var logger=require(_0x1a38('0x3'))(_0x1a38('0x4'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x1a38('0x5')),'mailMessage':require(_0x1a38('0x6')),'smsMessage':require(_0x1a38('0x7')),'faxMessage':require(_0x1a38('0x8')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x1a38('0x9')]=function(_0x569e9f,_0x5c8ab1){return function(_0x3d12f8){try{if(!_['isNil'](this[_0x1a38('0xa')][_0x1a38('0xb')])){logger[_0x1a38('0xc')](_0x1a38('0xd'),_0x569e9f,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x3d12f8[_0x1a38('0xe')]();}var _0x314549={'ContactId':this[_0x1a38('0xf')]['id'],'sentAt':moment()[_0x1a38('0x10')](_0x1a38('0x11')),'direction':_0x1a38('0x12')};if(this[_0x1a38('0x13')]===_0x1a38('0x14')||this[_0x1a38('0x13')]===_0x1a38('0x15')){_0x314549[_0x1a38('0x16')]=this[_0x1a38('0xa')][_0x1a38('0x16')];}var _0x43321f=this[_0x1a38('0x13')];if(_0x43321f===_0x1a38('0x17')){_0x314549[_0x1a38('0x18')]=this[_0x1a38('0x19')]['id'];}else{_0x314549[_[_0x1a38('0x1a')](_0x43321f)+_0x1a38('0x1b')]=this[_0x1a38('0x19')]['id'];}_0x314549[_[_0x1a38('0x1a')](_0x43321f)+_0x1a38('0x1c')]=this['interaction']['id'];if(this['interaction'][_0x1a38('0x1d')]){var _0x542c73=_0x5c8ab1[0x2];if(!_[_0x1a38('0x1e')](_0x542c73)){_0x314549[_0x1a38('0x1f')]=utils[_0x1a38('0x20')](_0x542c73,this);return rpc[_0x43321f+_0x1a38('0x21')][_0x1a38('0x22')](_0x314549)[_0x1a38('0x23')](function(_0x408e8f){logger[_0x1a38('0xc')](_0x1a38('0xd'),_0x569e9f,_0x314549['body']);})[_0x1a38('0x24')](function(_0x4e76a7){logger[_0x1a38('0x25')](_0x1a38('0xd'),_0x569e9f,JSON['stringify'](_0x4e76a7));})[_0x1a38('0x26')](function(){logger['info']('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x569e9f);_0x3d12f8[_0x1a38('0x27')]();});}else{logger[_0x1a38('0xc')](_0x1a38('0x28'),_0x569e9f);_0x3d12f8[_0x1a38('0x27')]();}}else{var _0x561fa4=this;var _0x391040=apiai(_0x5c8ab1[0x0],{'language':_0x5c8ab1[0x1]||'en'});return _0x391040[_0x1a38('0x29')](this[_0x1a38('0x2a')]['body'],{'sessionId':md5(this[_0x1a38('0xa')]['id'])})[_0x1a38('0x23')](function(_0x2877fe){_0x561fa4[_0x1a38('0x1f')][_0x1a38('0x2b')]=_0x2877fe;_0x314549[_0x1a38('0x1f')]=_0x2877fe[_0x1a38('0x2c')][_0x1a38('0x2d')][_0x1a38('0x2e')];_0x314549[_0x1a38('0x2f')]='dialogflow';_0x314549[_0x1a38('0x30')]=JSON['stringify'](_0x2877fe);return rpc[_0x43321f+_0x1a38('0x21')][_0x1a38('0x22')](_0x314549)['then'](function(_0x246e1f){logger['info'](_0x1a38('0xd'),_0x569e9f,_0x314549[_0x1a38('0x1f')]);if(_0x2877fe[_0x1a38('0x2c')]['metadata']['endConversation']){_0x3d12f8[_0x1a38('0xe')]();}else{_0x3d12f8[_0x1a38('0x27')]();}})[_0x1a38('0x24')](function(_0x45f54e){logger[_0x1a38('0x25')](_0x1a38('0xd'),_0x569e9f,JSON[_0x1a38('0x31')](_0x45f54e));_0x3d12f8[_0x1a38('0xe')]();});})['catch'](function(_0x5680bd){logger[_0x1a38('0x25')](_0x1a38('0xd'),_0x569e9f,_0x5680bd[_0x1a38('0x2a')]);_0x3d12f8[_0x1a38('0xe')]();});}}catch(_0x2b374e){logger[_0x1a38('0x25')](_0x1a38('0xd'),_0x569e9f,JSON['stringify'](_0x2b374e));_0x3d12f8[_0x1a38('0x27')]();}};};