822f08edebf205552ddbbdeec5587765a57a2ce7
[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 _0x2675=['toString','amazonlex','dialogState','lodash','../../../../config/logger','routing','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','interaction','UserId','[%s][AMAZONLEX]\x20%s','next','contact','YYYY-MM-DD\x20HH:mm:ss','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','Message','create','then','info','body','catch','error','stringify','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','LexRuntime','message','channel'];(function(_0x1cc8fe,_0x105328){var _0x230054=function(_0x1a1b56){while(--_0x1a1b56){_0x1cc8fe['push'](_0x1cc8fe['shift']());}};_0x230054(++_0x105328);}(_0x2675,0x75));var _0x5267=function(_0x2c2b98,_0x51b5b3){_0x2c2b98=_0x2c2b98-0x0;var _0x5be3ae=_0x2675[_0x2c2b98];return _0x5be3ae;};'use strict';var _=require(_0x5267('0x0'));var moment=require('moment');var AWS=require('aws-sdk');var utils=require('./utils');var logger=require(_0x5267('0x1'))(_0x5267('0x2'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x5267('0x3')),'mailMessage':require(_0x5267('0x4')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x5267('0x5')),'whatsappMessage':require(_0x5267('0x6'))};exports[_0x5267('0x7')]=function(_0x10f92c,_0x20f065){return function(_0xc56cd5){try{if(!_['isNil'](this[_0x5267('0x8')][_0x5267('0x9')])){logger['info'](_0x5267('0xa'),_0x10f92c,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0xc56cd5[_0x5267('0xb')]();}var _0x207d47={'ContactId':this[_0x5267('0xc')]['id'],'sentAt':moment()['format'](_0x5267('0xd')),'direction':'out'};var _0x445151=this['channel'];if(_0x445151===_0x5267('0xe')){_0x207d47[_0x5267('0xf')]=this[_0x5267('0x10')]['id'];}else{_0x207d47[_[_0x5267('0x11')](_0x445151)+_0x5267('0x12')]=this[_0x5267('0x10')]['id'];}_0x207d47[_[_0x5267('0x11')](_0x445151)+_0x5267('0x13')]=this[_0x5267('0x8')]['id'];if(this[_0x5267('0x8')][_0x5267('0x14')]){var _0x29349a=_0x20f065[0x4];if(!_[_0x5267('0x15')](_0x29349a)){_0x207d47['body']=utils['getMustacheRender'](_0x29349a,this);return rpc[_0x445151+_0x5267('0x16')][_0x5267('0x17')](_0x207d47)[_0x5267('0x18')](function(_0x3f5344){logger[_0x5267('0x19')](_0x5267('0xa'),_0x10f92c,_0x207d47[_0x5267('0x1a')]);})[_0x5267('0x1b')](function(_0x15d81e){logger[_0x5267('0x1c')](_0x5267('0xa'),_0x10f92c,JSON[_0x5267('0x1d')](_0x15d81e));})['finally'](function(){logger[_0x5267('0x19')](_0x5267('0x1e'),_0x10f92c);_0xc56cd5['stop']();});}else{logger[_0x5267('0x19')]('[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x10f92c);_0xc56cd5[_0x5267('0x1f')]();}}else{var _0x1019e7=this;var _0x39c0c3=new AWS[(_0x5267('0x20'))]({'accessKeyId':_0x20f065[0x0],'secretAccessKey':_0x20f065[0x1],'region':_0x20f065[0x2]});var _0x5ca9c6={'botAlias':'$LATEST','botName':_0x20f065[0x3],'inputText':this[_0x5267('0x21')]['body'],'userId':this[_0x5267('0x22')]+':'+this[_0x5267('0x8')]['id'][_0x5267('0x23')]()};_0x39c0c3['postText'](_0x5ca9c6,function(_0x499f19,_0x5546e2){if(_0x499f19){logger['error']('[%s][AMAZONLEX]\x20%s',_0x10f92c,_0x499f19[_0x5267('0x21')]);_0xc56cd5[_0x5267('0xb')]();}else if(_0x5546e2&&_0x5546e2[_0x5267('0x21')]){_0x1019e7[_0x5267('0x1a')][_0x5267('0x24')]=_0x5546e2;_0x207d47[_0x5267('0x1a')]=_0x5546e2[_0x5267('0x21')];return rpc[_0x445151+_0x5267('0x16')][_0x5267('0x17')](_0x207d47)['then'](function(_0x5cb64f){logger[_0x5267('0x19')](_0x5267('0xa'),_0x10f92c,_0x207d47['body']);if(_0x5546e2[_0x5267('0x25')]=='Failed'){_0xc56cd5['next']();}else{_0xc56cd5[_0x5267('0x1f')]();}})[_0x5267('0x1b')](function(_0x1f33b7){logger[_0x5267('0x1c')](_0x5267('0xa'),_0x10f92c,JSON['stringify'](_0x1f33b7));_0xc56cd5['next']();});}else{_0xc56cd5[_0x5267('0xb')]();}});}}catch(_0x10a68c){logger[_0x5267('0x1c')]('[%s][AMAZONLEX]\x20%s',_0x10f92c,JSON['stringify'](_0x10a68c));_0xc56cd5[_0x5267('0x1f')]();}};};