8f85900c3c2f0b94cbfa54aca09eae1e353aebf2
[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 _0x47af=['info','[%s][AMAZONLEX]\x20%s','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','whatsapp','phone','interaction','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','Message','then','catch','stringify','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','LexRuntime','$LATEST','toString','postText','error','message','amazonlex','providerName','providerResponse','lodash','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','UserId'];(function(_0x388b47,_0x5cdac5){var _0x4859df=function(_0x466a16){while(--_0x466a16){_0x388b47['push'](_0x388b47['shift']());}};_0x4859df(++_0x5cdac5);}(_0x47af,0xfa));var _0xf47a=function(_0x92e7c8,_0x50ddd9){_0x92e7c8=_0x92e7c8-0x0;var _0x3d65c2=_0x47af[_0x92e7c8];return _0x3d65c2;};'use strict';var _=require(_0xf47a('0x0'));var moment=require('moment');var AWS=require('aws-sdk');var utils=require(_0xf47a('0x1'));var logger=require('../../../../config/logger')('routing');var rpc={'chatMessage':require(_0xf47a('0x2')),'openchannelMessage':require(_0xf47a('0x3')),'mailMessage':require(_0xf47a('0x4')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xf47a('0x5')),'whatsappMessage':require(_0xf47a('0x6'))};exports['consequence']=function(_0x59fbf9,_0x39f566){return function(_0x554689){try{if(!_['isNil'](this['interaction'][_0xf47a('0x7')])){logger[_0xf47a('0x8')](_0xf47a('0x9'),_0x59fbf9,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x554689[_0xf47a('0xa')]();}var _0x3b6915={'ContactId':this[_0xf47a('0xb')]['id'],'sentAt':moment()[_0xf47a('0xc')](_0xf47a('0xd')),'direction':_0xf47a('0xe')};if(this[_0xf47a('0xf')]==='sms'||this[_0xf47a('0xf')]===_0xf47a('0x10')){_0x3b6915[_0xf47a('0x11')]=this[_0xf47a('0x12')][_0xf47a('0x11')];}var _0x3332ca=this[_0xf47a('0xf')];if(_0x3332ca===_0xf47a('0x13')){_0x3b6915[_0xf47a('0x14')]=this[_0xf47a('0x15')]['id'];}else{_0x3b6915[_[_0xf47a('0x16')](_0x3332ca)+_0xf47a('0x17')]=this['account']['id'];}_0x3b6915[_['upperFirst'](_0x3332ca)+_0xf47a('0x18')]=this['interaction']['id'];if(this[_0xf47a('0x12')][_0xf47a('0x19')]){var _0x3b803f=_0x39f566[0x4];if(!_[_0xf47a('0x1a')](_0x3b803f)){_0x3b6915[_0xf47a('0x1b')]=utils['getMustacheRender'](_0x3b803f,this);return rpc[_0x3332ca+_0xf47a('0x1c')]['create'](_0x3b6915)[_0xf47a('0x1d')](function(_0xf5281){logger[_0xf47a('0x8')]('[%s][AMAZONLEX]\x20%s',_0x59fbf9,_0x3b6915[_0xf47a('0x1b')]);})[_0xf47a('0x1e')](function(_0x59f5a1){logger['error'](_0xf47a('0x9'),_0x59fbf9,JSON[_0xf47a('0x1f')](_0x59f5a1));})['finally'](function(){logger[_0xf47a('0x8')](_0xf47a('0x20'),_0x59fbf9);_0x554689[_0xf47a('0x21')]();});}else{logger['info']('[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x59fbf9);_0x554689['stop']();}}else{var _0x1117cf=this;var _0x33ec7c=new AWS[(_0xf47a('0x22'))]({'accessKeyId':_0x39f566[0x0],'secretAccessKey':_0x39f566[0x1],'region':_0x39f566[0x2]});var _0x504de8={'botAlias':_0xf47a('0x23'),'botName':_0x39f566[0x3],'inputText':this['message'][_0xf47a('0x1b')],'userId':this[_0xf47a('0xf')]+':'+this[_0xf47a('0x12')]['id'][_0xf47a('0x24')]()};_0x33ec7c[_0xf47a('0x25')](_0x504de8,function(_0x417cb0,_0x4b3ed8){if(_0x417cb0){logger[_0xf47a('0x26')]('[%s][AMAZONLEX]\x20%s',_0x59fbf9,_0x417cb0['message']);_0x554689[_0xf47a('0xa')]();}else if(_0x4b3ed8&&_0x4b3ed8[_0xf47a('0x27')]){_0x1117cf[_0xf47a('0x1b')][_0xf47a('0x28')]=_0x4b3ed8;_0x3b6915[_0xf47a('0x1b')]=_0x4b3ed8['message'];_0x3b6915[_0xf47a('0x29')]=_0xf47a('0x28');_0x3b6915[_0xf47a('0x2a')]=JSON[_0xf47a('0x1f')](_0x4b3ed8);return rpc[_0x3332ca+_0xf47a('0x1c')]['create'](_0x3b6915)[_0xf47a('0x1d')](function(_0x3ddcbd){logger[_0xf47a('0x8')](_0xf47a('0x9'),_0x59fbf9,_0x3b6915[_0xf47a('0x1b')]);if(_0x4b3ed8['dialogState']=='Failed'){_0x554689['next']();}else{_0x554689['stop']();}})['catch'](function(_0xdf7387){logger[_0xf47a('0x26')](_0xf47a('0x9'),_0x59fbf9,JSON['stringify'](_0xdf7387));_0x554689[_0xf47a('0xa')]();});}else{_0x554689[_0xf47a('0xa')]();}});}}catch(_0x2cef50){logger['error'](_0xf47a('0x9'),_0x59fbf9,JSON[_0xf47a('0x1f')](_0x2cef50));_0x554689[_0xf47a('0x21')]();}};};