65844ab7a28ac9eb3b90a0262bd6ff97cb3a9822
[motion2.git] / server / services / routing / server / applications / dialogflowV2.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 _0x5a40=['fulfillmentText','push','all','next','stack','lodash','dialogflow','routing','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','clone','body','Message','[%s][DIALOGFLOWV2]\x20%s','catch','isNil','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','interaction','phone','chat','ChatWebsiteId','upperFirst','AccountId','account','InteractionId','created','getMustacheRender','create','info','error','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','sessionPath','message','detectIntent','then','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','DIALOGFLOWV2_ACTION','action','allRequiredParamsPresent','boolValue','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','providerName','providerResponse','stringify','length'];(function(_0x597227,_0x5b2405){var _0x472bca=function(_0x33529d){while(--_0x33529d){_0x597227['push'](_0x597227['shift']());}};_0x472bca(++_0x5b2405);}(_0x5a40,0x95));var _0x05a4=function(_0x31e10,_0x376a33){_0x31e10=_0x31e10-0x0;var _0x59c757=_0x5a40[_0x31e10];return _0x59c757;};'use strict';var _=require(_0x05a4('0x0'));var dialogflow=require(_0x05a4('0x1'));var md5=require('md5');var moment=require('moment');var Promise=require('bluebird');var logger=require('../../../../config/logger')(_0x05a4('0x2'));var utils=require('./utils');var rpc={'chatMessage':require(_0x05a4('0x3')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x05a4('0x4')),'smsMessage':require(_0x05a4('0x5')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0x05a4('0x6'))};function createMessage(_0x5eeffd,_0xbf572d,_0x413890,_0x4c9ca0){return new Promise(function(_0x1b69f8,_0x545256){var _0x5129d5=_[_0x05a4('0x7')](_0x413890);_0x5129d5[_0x05a4('0x8')]=_0x4c9ca0;return rpc[_0xbf572d+_0x05a4('0x9')]['create'](_0x5129d5)['then'](function(){logger['info'](_0x05a4('0xa'),_0x5eeffd,_0x5129d5[_0x05a4('0x8')]);_0x1b69f8();})[_0x05a4('0xb')](function(_0x3b2689){logger['error'](_0x05a4('0xa'),_0x5eeffd,JSON['stringify'](_0x3b2689));_0x545256(_0x3b2689);});});}exports['consequence']=function(_0x48d7ac,_0xa58f07){return function(_0x4c8aa0){try{if(!_[_0x05a4('0xc')](this['interaction'][_0x05a4('0xd')])){logger['info'](_0x05a4('0xa'),_0x48d7ac,_0x05a4('0xe'));return _0x4c8aa0['next']();}var _0x3b9b71={'ContactId':this[_0x05a4('0xf')]['id'],'sentAt':moment()['format'](_0x05a4('0x10')),'direction':_0x05a4('0x11')};if(this[_0x05a4('0x12')]===_0x05a4('0x13')||this['channel']===_0x05a4('0x14')){_0x3b9b71['phone']=this[_0x05a4('0x15')][_0x05a4('0x16')];}var _0x1e59b4=this[_0x05a4('0x12')];if(_0x1e59b4===_0x05a4('0x17')){_0x3b9b71[_0x05a4('0x18')]=this['account']['id'];}else{_0x3b9b71[_[_0x05a4('0x19')](_0x1e59b4)+_0x05a4('0x1a')]=this[_0x05a4('0x1b')]['id'];}_0x3b9b71[_[_0x05a4('0x19')](_0x1e59b4)+_0x05a4('0x1c')]=this[_0x05a4('0x15')]['id'];if(this[_0x05a4('0x15')][_0x05a4('0x1d')]){var _0x2a74df=_0xa58f07[0x4];if(!_['isEmpty'](_0x2a74df)){_0x3b9b71[_0x05a4('0x8')]=utils[_0x05a4('0x1e')](_0x2a74df,this);return rpc[_0x1e59b4+_0x05a4('0x9')][_0x05a4('0x1f')](_0x3b9b71)['then'](function(_0x5e6e2e){logger[_0x05a4('0x20')]('[%s][DIALOGFLOWV2]\x20%s',_0x48d7ac,_0x3b9b71[_0x05a4('0x8')]);})['catch'](function(_0x47f18d){logger[_0x05a4('0x21')](_0x05a4('0xa'),_0x48d7ac,JSON['stringify'](_0x47f18d));})[_0x05a4('0x22')](function(){logger['info'](_0x05a4('0x23'),_0x48d7ac);_0x4c8aa0[_0x05a4('0x24')]();});}else{logger[_0x05a4('0x20')](_0x05a4('0x25'),_0x48d7ac);_0x4c8aa0[_0x05a4('0x24')]();}}else{var _0x245fbf=this;var _0x1b5208=_0xa58f07[0x2][_0x05a4('0x26')](/\\n/g,'\x0a');var _0xcda891={'credentials':{'private_key':_0x1b5208,'client_email':_0xa58f07[0x1]}};var _0x4e10b5=new dialogflow[(_0x05a4('0x27'))](_0xcda891);var _0x11d81c=_0x4e10b5[_0x05a4('0x28')](_0xa58f07[0x0],md5(_0x245fbf[_0x05a4('0x15')]['id']));var _0x43182d={'session':_0x11d81c,'queryInput':{'text':{'text':_0x245fbf[_0x05a4('0x29')]['body'],'languageCode':_0xa58f07[0x3]||'en'}}};return _0x4e10b5[_0x05a4('0x2a')](_0x43182d)[_0x05a4('0x2b')](function(_0x3c1bb4){if(_0x3c1bb4&&_0x3c1bb4['length']){_0x245fbf[_0x05a4('0x8')][_0x05a4('0x2c')]=_0x3c1bb4;var _0x1eafb1=_0x3c1bb4[0x0];var _0x4f239b=_0x1eafb1[_0x05a4('0x2d')]['diagnosticInfo']&&_0x1eafb1['queryResult'][_0x05a4('0x2e')][_0x05a4('0x2f')]?_0x1eafb1['queryResult']['diagnosticInfo']['fields'][_0x05a4('0x30')]['boolValue']:![];_0x245fbf[_0x05a4('0x8')][_0x05a4('0x31')]=_0x1eafb1[_0x05a4('0x2d')][_0x05a4('0x32')];_0x245fbf[_0x05a4('0x8')]['DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT']=_0x1eafb1[_0x05a4('0x2d')][_0x05a4('0x33')];_0x245fbf['body']['DIALOGFLOWV2_ENDCONVERSATION']=_0x1eafb1[_0x05a4('0x2d')][_0x05a4('0x2e')]&&_0x1eafb1[_0x05a4('0x2d')][_0x05a4('0x2e')][_0x05a4('0x2f')]?_0x1eafb1[_0x05a4('0x2d')]['diagnosticInfo']['fields'][_0x05a4('0x30')][_0x05a4('0x34')]:![];_0x245fbf['body'][_0x05a4('0x35')]=_0x1eafb1[_0x05a4('0x2d')][_0x05a4('0x36')][_0x05a4('0x37')];_0x245fbf[_0x05a4('0x8')][_0x05a4('0x38')]=_0x1eafb1['queryResult'][_0x05a4('0x36')][_0x05a4('0x39')];_0x245fbf['body'][_0x05a4('0x3a')]=_0x1eafb1['queryResult']['intent'][_0x05a4('0x3b')];_0x245fbf[_0x05a4('0x8')]['DIALOGFLOWV2_LANGUAGECODE']=_0x1eafb1[_0x05a4('0x2d')][_0x05a4('0x3c')];_0x245fbf[_0x05a4('0x8')][_0x05a4('0x3d')]=_0x1eafb1[_0x05a4('0x2d')][_0x05a4('0x3e')];_0x245fbf[_0x05a4('0x8')]['DIALOGFLOWV2_SCORE']=_0x1eafb1[_0x05a4('0x2d')]['intentDetectionConfidence'];_0x3b9b71[_0x05a4('0x3f')]=_0x05a4('0x2c');_0x3b9b71[_0x05a4('0x40')]=JSON[_0x05a4('0x41')](_0x3c1bb4);var _0x19f414=[];for(var _0xd46033=0x0;_0xd46033<_0x3c1bb4[_0x05a4('0x42')];_0xd46033++){var _0x1027b0=_0x3c1bb4[_0xd46033];if(_0x1027b0&&_0x1027b0[_0x05a4('0x2d')]&&_0x1027b0[_0x05a4('0x2d')][_0x05a4('0x43')]){_0x19f414[_0x05a4('0x44')](createMessage(_0x48d7ac,_0x1e59b4,_0x3b9b71,_0x1027b0[_0x05a4('0x2d')][_0x05a4('0x43')]));}}return Promise[_0x05a4('0x45')](_0x19f414)['then'](function(){if(_0x4f239b){_0x4c8aa0['next']();}else{_0x4c8aa0[_0x05a4('0x24')]();}})[_0x05a4('0xb')](function(_0x16bf3b){logger[_0x05a4('0x21')](_0x05a4('0xa'),_0x48d7ac,JSON[_0x05a4('0x41')](_0x16bf3b));_0x4c8aa0[_0x05a4('0x46')]();});}})[_0x05a4('0xb')](function(_0x303502){logger['error'](_0x05a4('0xa'),_0x48d7ac,_0x303502[_0x05a4('0x29')],_0x303502[_0x05a4('0x47')]);_0x4c8aa0[_0x05a4('0x46')]();});}}catch(_0x27bb1d){logger['error'](_0x05a4('0xa'),_0x48d7ac,JSON[_0x05a4('0x41')](_0x27bb1d));_0x4c8aa0['stop']();}};};