Built motion from commit (unavailable).|2.5.19
[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 _0x9f0c=['message','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','boolValue','DIALOGFLOWV2_ACTION','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_LANGUAGECODE','DIALOGFLOWV2_QUERYTEXT','queryText','intentDetectionConfidence','providerResponse','fulfillmentText','push','lodash','dialogflow','md5','bluebird','./utils','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','clone','body','Message','create','then','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','consequence','interaction','UserId','info','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','phone','chat','ChatWebsiteId','account','upperFirst','InteractionId','created','isEmpty','getMustacheRender','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','sessionPath'];(function(_0x92c450,_0x41f1e3){var _0x2a9599=function(_0x4f27df){while(--_0x4f27df){_0x92c450['push'](_0x92c450['shift']());}};_0x2a9599(++_0x41f1e3);}(_0x9f0c,0x1a4));var _0xc9f0=function(_0x108911,_0x4d412d){_0x108911=_0x108911-0x0;var _0x293e65=_0x9f0c[_0x108911];return _0x293e65;};'use strict';var _=require(_0xc9f0('0x0'));var dialogflow=require(_0xc9f0('0x1'));var md5=require(_0xc9f0('0x2'));var moment=require('moment');var Promise=require(_0xc9f0('0x3'));var logger=require('../../../../config/logger')('routing');var utils=require(_0xc9f0('0x4'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0xc9f0('0x5')),'mailMessage':require(_0xc9f0('0x6')),'smsMessage':require(_0xc9f0('0x7')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x402591,_0x2016fe,_0xc7b8de,_0x2b672c){return new Promise(function(_0x1847b6,_0x45582e){var _0x863230=_[_0xc9f0('0x8')](_0xc7b8de);_0x863230[_0xc9f0('0x9')]=_0x2b672c;return rpc[_0x2016fe+_0xc9f0('0xa')][_0xc9f0('0xb')](_0x863230)[_0xc9f0('0xc')](function(){logger['info'](_0xc9f0('0xd'),_0x402591,_0x863230[_0xc9f0('0x9')]);_0x1847b6();})[_0xc9f0('0xe')](function(_0x182bfd){logger[_0xc9f0('0xf')]('[%s][DIALOGFLOWV2]\x20%s',_0x402591,JSON[_0xc9f0('0x10')](_0x182bfd));_0x45582e(_0x182bfd);});});}exports[_0xc9f0('0x11')]=function(_0x43677b,_0x5d90ae){return function(_0x1b608c){try{if(!_['isNil'](this[_0xc9f0('0x12')][_0xc9f0('0x13')])){logger[_0xc9f0('0x14')](_0xc9f0('0xd'),_0x43677b,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x1b608c[_0xc9f0('0x15')]();}var _0x4dd659={'ContactId':this[_0xc9f0('0x16')]['id'],'sentAt':moment()[_0xc9f0('0x17')](_0xc9f0('0x18')),'direction':_0xc9f0('0x19')};if(this[_0xc9f0('0x1a')]==='sms'||this[_0xc9f0('0x1a')]==='whatsapp'){_0x4dd659[_0xc9f0('0x1b')]=this[_0xc9f0('0x12')][_0xc9f0('0x1b')];}var _0x3b5302=this['channel'];if(_0x3b5302===_0xc9f0('0x1c')){_0x4dd659[_0xc9f0('0x1d')]=this[_0xc9f0('0x1e')]['id'];}else{_0x4dd659[_['upperFirst'](_0x3b5302)+'AccountId']=this[_0xc9f0('0x1e')]['id'];}_0x4dd659[_[_0xc9f0('0x1f')](_0x3b5302)+_0xc9f0('0x20')]=this[_0xc9f0('0x12')]['id'];if(this['interaction'][_0xc9f0('0x21')]){var _0xd8ce2a=_0x5d90ae[0x4];if(!_[_0xc9f0('0x22')](_0xd8ce2a)){_0x4dd659['body']=utils[_0xc9f0('0x23')](_0xd8ce2a,this);return rpc[_0x3b5302+'Message']['create'](_0x4dd659)[_0xc9f0('0xc')](function(_0x4b01e4){logger[_0xc9f0('0x14')](_0xc9f0('0xd'),_0x43677b,_0x4dd659['body']);})['catch'](function(_0x44b242){logger[_0xc9f0('0xf')]('[%s][DIALOGFLOWV2]\x20%s',_0x43677b,JSON[_0xc9f0('0x10')](_0x44b242));})[_0xc9f0('0x24')](function(){logger[_0xc9f0('0x14')](_0xc9f0('0x25'),_0x43677b);_0x1b608c[_0xc9f0('0x26')]();});}else{logger['info'](_0xc9f0('0x27'),_0x43677b);_0x1b608c['stop']();}}else{var _0x1d7a5f=this;var _0x263acc=_0x5d90ae[0x2][_0xc9f0('0x28')](/\\n/g,'\x0a');var _0x2fb37c={'credentials':{'private_key':_0x263acc,'client_email':_0x5d90ae[0x1]}};var _0x18f5ee=new dialogflow['SessionsClient'](_0x2fb37c);var _0x340a58=_0x18f5ee[_0xc9f0('0x29')](_0x5d90ae[0x0],md5(_0x1d7a5f['interaction']['id']));var _0x8c8729={'session':_0x340a58,'queryInput':{'text':{'text':_0x1d7a5f[_0xc9f0('0x2a')]['body'],'languageCode':_0x5d90ae[0x3]||'en'}}};return _0x18f5ee[_0xc9f0('0x2b')](_0x8c8729)[_0xc9f0('0xc')](function(_0x3c9522){if(_0x3c9522&&_0x3c9522[_0xc9f0('0x2c')]){_0x1d7a5f['body'][_0xc9f0('0x2d')]=_0x3c9522;var _0x3c30e9=_0x3c9522[0x0];var _0x46249a=_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x2f')]&&_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x2f')][_0xc9f0('0x30')]?_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x2f')][_0xc9f0('0x30')]['end_conversation'][_0xc9f0('0x31')]:![];_0x1d7a5f['body'][_0xc9f0('0x32')]=_0x3c30e9[_0xc9f0('0x2e')]['action'];_0x1d7a5f[_0xc9f0('0x9')][_0xc9f0('0x33')]=_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x34')];_0x1d7a5f[_0xc9f0('0x9')][_0xc9f0('0x35')]=_0x3c30e9['queryResult'][_0xc9f0('0x2f')]&&_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x2f')]['fields']?_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x2f')][_0xc9f0('0x30')]['end_conversation'][_0xc9f0('0x31')]:![];_0x1d7a5f[_0xc9f0('0x9')]['DIALOGFLOWV2_INTENTNAME']=_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x36')][_0xc9f0('0x37')];_0x1d7a5f['body'][_0xc9f0('0x38')]=_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x36')]['displayName'];_0x1d7a5f[_0xc9f0('0x9')][_0xc9f0('0x39')]=_0x3c30e9['queryResult'][_0xc9f0('0x36')][_0xc9f0('0x3a')];_0x1d7a5f[_0xc9f0('0x9')][_0xc9f0('0x3b')]=_0x3c30e9[_0xc9f0('0x2e')]['languageCode'];_0x1d7a5f[_0xc9f0('0x9')][_0xc9f0('0x3c')]=_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x3d')];_0x1d7a5f['body']['DIALOGFLOWV2_SCORE']=_0x3c30e9[_0xc9f0('0x2e')][_0xc9f0('0x3e')];_0x4dd659['providerName']='dialogflowV2';_0x4dd659[_0xc9f0('0x3f')]=JSON['stringify'](_0x3c9522);var _0x51c400=[];for(var _0x1dd5cd=0x0;_0x1dd5cd<_0x3c9522[_0xc9f0('0x2c')];_0x1dd5cd++){var _0x40b785=_0x3c9522[_0x1dd5cd];if(_0x40b785&&_0x40b785[_0xc9f0('0x2e')]&&_0x40b785['queryResult'][_0xc9f0('0x40')]){_0x51c400[_0xc9f0('0x41')](createMessage(_0x43677b,_0x3b5302,_0x4dd659,_0x40b785[_0xc9f0('0x2e')][_0xc9f0('0x40')]));}}return Promise['all'](_0x51c400)[_0xc9f0('0xc')](function(){if(_0x46249a){_0x1b608c[_0xc9f0('0x15')]();}else{_0x1b608c[_0xc9f0('0x26')]();}})[_0xc9f0('0xe')](function(_0x462950){logger[_0xc9f0('0xf')](_0xc9f0('0xd'),_0x43677b,JSON['stringify'](_0x462950));_0x1b608c[_0xc9f0('0x15')]();});}})['catch'](function(_0x8817a2){logger[_0xc9f0('0xf')](_0xc9f0('0xd'),_0x43677b,_0x8817a2[_0xc9f0('0x2a')]);_0x1b608c[_0xc9f0('0x15')]();});}}catch(_0x39ac1c){logger['error'](_0xc9f0('0xd'),_0x43677b,JSON[_0xc9f0('0x10')](_0x39ac1c));_0x1b608c[_0xc9f0('0x26')]();}};};