ac54544190e4cf57e78314f3930b6e4502d54186
[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 _0xaf5a=['../../rpc/whatsappMessage','consequence','isNil','interaction','UserId','info','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format','out','channel','sms','phone','chat','ChatWebsiteId','account','upperFirst','InteractionId','created','body','getMustacheRender','Message','create','then','catch','error','[%s][DIALOGFLOW]\x20%s','stringify','finally','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','message','dialogflow','fulfillment','providerName','endConversation','next','moment','apiai-promise','md5','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage'];(function(_0x22caed,_0x446178){var _0x369a9e=function(_0x507ebb){while(--_0x507ebb){_0x22caed['push'](_0x22caed['shift']());}};_0x369a9e(++_0x446178);}(_0xaf5a,0x116));var _0xaaf5=function(_0x450f09,_0x59561d){_0x450f09=_0x450f09-0x0;var _0x4e22ec=_0xaf5a[_0x450f09];return _0x4e22ec;};'use strict';var _=require('lodash');var moment=require(_0xaaf5('0x0'));var apiai=require(_0xaaf5('0x1'));var md5=require(_0xaaf5('0x2'));var utils=require(_0xaaf5('0x3'));var logger=require(_0xaaf5('0x4'))(_0xaaf5('0x5'));var rpc={'chatMessage':require(_0xaaf5('0x6')),'openchannelMessage':require(_0xaaf5('0x7')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0xaaf5('0x8')),'faxMessage':require(_0xaaf5('0x9')),'whatsappMessage':require(_0xaaf5('0xa'))};exports[_0xaaf5('0xb')]=function(_0x5890d2,_0x57e7f9){return function(_0x34a86f){try{if(!_[_0xaaf5('0xc')](this[_0xaaf5('0xd')][_0xaaf5('0xe')])){logger[_0xaaf5('0xf')]('[%s][DIALOGFLOW]\x20%s',_0x5890d2,_0xaaf5('0x10'));return _0x34a86f['next']();}var _0x5a3ce0={'ContactId':this[_0xaaf5('0x11')]['id'],'sentAt':moment()[_0xaaf5('0x12')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0xaaf5('0x13')};if(this[_0xaaf5('0x14')]===_0xaaf5('0x15')||this[_0xaaf5('0x14')]==='whatsapp'){_0x5a3ce0[_0xaaf5('0x16')]=this[_0xaaf5('0xd')]['phone'];}var _0x3f39fe=this['channel'];if(_0x3f39fe===_0xaaf5('0x17')){_0x5a3ce0[_0xaaf5('0x18')]=this[_0xaaf5('0x19')]['id'];}else{_0x5a3ce0[_[_0xaaf5('0x1a')](_0x3f39fe)+'AccountId']=this[_0xaaf5('0x19')]['id'];}_0x5a3ce0[_[_0xaaf5('0x1a')](_0x3f39fe)+_0xaaf5('0x1b')]=this[_0xaaf5('0xd')]['id'];if(this[_0xaaf5('0xd')][_0xaaf5('0x1c')]){var _0x27d66f=_0x57e7f9[0x2];if(!_['isEmpty'](_0x27d66f)){_0x5a3ce0[_0xaaf5('0x1d')]=utils[_0xaaf5('0x1e')](_0x27d66f,this);return rpc[_0x3f39fe+_0xaaf5('0x1f')][_0xaaf5('0x20')](_0x5a3ce0)[_0xaaf5('0x21')](function(_0x403bb2){logger[_0xaaf5('0xf')]('[%s][DIALOGFLOW]\x20%s',_0x5890d2,_0x5a3ce0['body']);})[_0xaaf5('0x22')](function(_0x45efc2){logger[_0xaaf5('0x23')](_0xaaf5('0x24'),_0x5890d2,JSON[_0xaaf5('0x25')](_0x45efc2));})[_0xaaf5('0x26')](function(){logger['info']('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x5890d2);_0x34a86f[_0xaaf5('0x27')]();});}else{logger[_0xaaf5('0xf')](_0xaaf5('0x28'),_0x5890d2);_0x34a86f[_0xaaf5('0x27')]();}}else{var _0x3020b0=this;var _0x2a390c=apiai(_0x57e7f9[0x0],{'language':_0x57e7f9[0x1]||'en'});return _0x2a390c[_0xaaf5('0x29')](this[_0xaaf5('0x2a')][_0xaaf5('0x1d')],{'sessionId':md5(this[_0xaaf5('0xd')]['id'])})[_0xaaf5('0x21')](function(_0xd7db51){_0x3020b0[_0xaaf5('0x1d')][_0xaaf5('0x2b')]=_0xd7db51;_0x5a3ce0['body']=_0xd7db51['result'][_0xaaf5('0x2c')]['speech'];_0x5a3ce0[_0xaaf5('0x2d')]='dialogflow';_0x5a3ce0['providerResponse']=JSON[_0xaaf5('0x25')](_0xd7db51);return rpc[_0x3f39fe+_0xaaf5('0x1f')][_0xaaf5('0x20')](_0x5a3ce0)[_0xaaf5('0x21')](function(_0x11b2a9){logger[_0xaaf5('0xf')]('[%s][DIALOGFLOW]\x20%s',_0x5890d2,_0x5a3ce0[_0xaaf5('0x1d')]);if(_0xd7db51['result']['metadata'][_0xaaf5('0x2e')]){_0x34a86f[_0xaaf5('0x2f')]();}else{_0x34a86f[_0xaaf5('0x27')]();}})[_0xaaf5('0x22')](function(_0x66ac51){logger[_0xaaf5('0x23')]('[%s][DIALOGFLOW]\x20%s',_0x5890d2,JSON[_0xaaf5('0x25')](_0x66ac51));_0x34a86f['next']();});})[_0xaaf5('0x22')](function(_0x561800){logger['error'](_0xaaf5('0x24'),_0x5890d2,_0x561800['message']);_0x34a86f[_0xaaf5('0x2f')]();});}}catch(_0x380cbb){logger['error'](_0xaaf5('0x24'),_0x5890d2,JSON['stringify'](_0x380cbb));_0x34a86f[_0xaaf5('0x27')]();}};};