cba4e0bc8097a483ccd9ea8bd937ddd9679f9643
[motion2.git] / server / services / routing / server / applications / amazonlex.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 _0xff71=['account','upperFirst','InteractionId','created','isEmpty','body','getMustacheRender','Message','create','then','error','stringify','finally','stop','LexRuntime','$LATEST','message','toString','postText','amazonlex','providerName','providerResponse','dialogState','Failed','lodash','moment','aws-sdk','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','isNil','interaction','info','[%s][AMAZONLEX]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','whatsapp','phone','channel','ChatWebsiteId'];(function(_0x2993c9,_0x2d31a1){var _0x31eea5=function(_0x463f2f){while(--_0x463f2f){_0x2993c9['push'](_0x2993c9['shift']());}};_0x31eea5(++_0x2d31a1);}(_0xff71,0x1b0));var _0x1ff7=function(_0x1da436,_0x2fab9d){_0x1da436=_0x1da436-0x0;var _0xe4468d=_0xff71[_0x1da436];return _0xe4468d;};'use strict';var _=require(_0x1ff7('0x0'));var moment=require(_0x1ff7('0x1'));var AWS=require(_0x1ff7('0x2'));var utils=require(_0x1ff7('0x3'));var logger=require(_0x1ff7('0x4'))(_0x1ff7('0x5'));var rpc={'chatMessage':require(_0x1ff7('0x6')),'openchannelMessage':require(_0x1ff7('0x7')),'mailMessage':require(_0x1ff7('0x8')),'smsMessage':require(_0x1ff7('0x9')),'faxMessage':require(_0x1ff7('0xa')),'whatsappMessage':require(_0x1ff7('0xb'))};exports[_0x1ff7('0xc')]=function(_0x3cc94e,_0x1c37b9){return function(_0x4caaf4){try{if(!_[_0x1ff7('0xd')](this[_0x1ff7('0xe')]['UserId'])){logger[_0x1ff7('0xf')](_0x1ff7('0x10'),_0x3cc94e,_0x1ff7('0x11'));return _0x4caaf4[_0x1ff7('0x12')]();}var _0xe99f24={'ContactId':this[_0x1ff7('0x13')]['id'],'sentAt':moment()[_0x1ff7('0x14')](_0x1ff7('0x15')),'direction':_0x1ff7('0x16')};if(this['channel']==='sms'||this['channel']===_0x1ff7('0x17')){_0xe99f24[_0x1ff7('0x18')]=this[_0x1ff7('0xe')][_0x1ff7('0x18')];}var _0x5089cd=this[_0x1ff7('0x19')];if(_0x5089cd==='chat'){_0xe99f24[_0x1ff7('0x1a')]=this[_0x1ff7('0x1b')]['id'];}else{_0xe99f24[_[_0x1ff7('0x1c')](_0x5089cd)+'AccountId']=this[_0x1ff7('0x1b')]['id'];}_0xe99f24[_['upperFirst'](_0x5089cd)+_0x1ff7('0x1d')]=this[_0x1ff7('0xe')]['id'];if(this[_0x1ff7('0xe')][_0x1ff7('0x1e')]){var _0x4e0ccf=_0x1c37b9[0x4];if(!_[_0x1ff7('0x1f')](_0x4e0ccf)){_0xe99f24[_0x1ff7('0x20')]=utils[_0x1ff7('0x21')](_0x4e0ccf,this);return rpc[_0x5089cd+_0x1ff7('0x22')][_0x1ff7('0x23')](_0xe99f24)[_0x1ff7('0x24')](function(_0x287786){logger[_0x1ff7('0xf')](_0x1ff7('0x10'),_0x3cc94e,_0xe99f24[_0x1ff7('0x20')]);})['catch'](function(_0x48151a){logger[_0x1ff7('0x25')](_0x1ff7('0x10'),_0x3cc94e,JSON[_0x1ff7('0x26')](_0x48151a));})[_0x1ff7('0x27')](function(){logger[_0x1ff7('0xf')]('[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x3cc94e);_0x4caaf4['stop']();});}else{logger[_0x1ff7('0xf')]('[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x3cc94e);_0x4caaf4[_0x1ff7('0x28')]();}}else{var _0xa33139=this;var _0x231e4d=new AWS[(_0x1ff7('0x29'))]({'accessKeyId':_0x1c37b9[0x0],'secretAccessKey':_0x1c37b9[0x1],'region':_0x1c37b9[0x2]});var _0x44cd72={'botAlias':_0x1ff7('0x2a'),'botName':_0x1c37b9[0x3],'inputText':this[_0x1ff7('0x2b')][_0x1ff7('0x20')],'userId':this[_0x1ff7('0x19')]+':'+this['interaction']['id'][_0x1ff7('0x2c')]()};_0x231e4d[_0x1ff7('0x2d')](_0x44cd72,function(_0x2bfbed,_0x2329f7){if(_0x2bfbed){logger[_0x1ff7('0x25')](_0x1ff7('0x10'),_0x3cc94e,_0x2bfbed[_0x1ff7('0x2b')]);_0x4caaf4[_0x1ff7('0x12')]();}else if(_0x2329f7&&_0x2329f7[_0x1ff7('0x2b')]){_0xa33139['body'][_0x1ff7('0x2e')]=_0x2329f7;_0xe99f24['body']=_0x2329f7[_0x1ff7('0x2b')];_0xe99f24[_0x1ff7('0x2f')]=_0x1ff7('0x2e');_0xe99f24[_0x1ff7('0x30')]=JSON[_0x1ff7('0x26')](_0x2329f7);return rpc[_0x5089cd+_0x1ff7('0x22')][_0x1ff7('0x23')](_0xe99f24)[_0x1ff7('0x24')](function(_0xb9f151){logger['info']('[%s][AMAZONLEX]\x20%s',_0x3cc94e,_0xe99f24[_0x1ff7('0x20')]);if(_0x2329f7[_0x1ff7('0x31')]==_0x1ff7('0x32')){_0x4caaf4[_0x1ff7('0x12')]();}else{_0x4caaf4[_0x1ff7('0x28')]();}})['catch'](function(_0x233489){logger['error']('[%s][AMAZONLEX]\x20%s',_0x3cc94e,JSON[_0x1ff7('0x26')](_0x233489));_0x4caaf4[_0x1ff7('0x12')]();});}else{_0x4caaf4[_0x1ff7('0x12')]();}});}}catch(_0x3ccdf9){logger[_0x1ff7('0x25')](_0x1ff7('0x10'),_0x3cc94e,JSON[_0x1ff7('0x26')](_0x3ccdf9));_0x4caaf4[_0x1ff7('0x28')]();}};};