Built motion from commit 14588770.|2.5.38
[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 _0xb373=['interaction','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','Message','create','catch','error','stringify','info','stop','LexRuntime','$LATEST','message','toString','postText','amazonlex','providerResponse','dialogState','Failed','lodash','routing','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','consequence','[%s][AMAZONLEX]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','phone'];(function(_0x5ee71e,_0x28e6bf){var _0x1675b1=function(_0x5f543c){while(--_0x5f543c){_0x5ee71e['push'](_0x5ee71e['shift']());}};_0x1675b1(++_0x28e6bf);}(_0xb373,0x161));var _0x3b37=function(_0x51cbc7,_0x70e604){_0x51cbc7=_0x51cbc7-0x0;var _0x1ec150=_0xb373[_0x51cbc7];return _0x1ec150;};'use strict';var _=require(_0x3b37('0x0'));var moment=require('moment');var AWS=require('aws-sdk');var utils=require('./utils');var logger=require('../../../../config/logger')(_0x3b37('0x1'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x3b37('0x2')),'mailMessage':require(_0x3b37('0x3')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x3b37('0x4')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x3b37('0x5')]=function(_0x188874,_0x5187c8){return function(_0x2c59f1){try{if(!_['isNil'](this['interaction']['UserId'])){logger['info'](_0x3b37('0x6'),_0x188874,_0x3b37('0x7'));return _0x2c59f1[_0x3b37('0x8')]();}var _0x6c2283={'ContactId':this[_0x3b37('0x9')]['id'],'sentAt':moment()[_0x3b37('0xa')](_0x3b37('0xb')),'direction':_0x3b37('0xc')};if(this[_0x3b37('0xd')]===_0x3b37('0xe')||this[_0x3b37('0xd')]==='whatsapp'){_0x6c2283[_0x3b37('0xf')]=this[_0x3b37('0x10')][_0x3b37('0xf')];}var _0x3d4dc2=this[_0x3b37('0xd')];if(_0x3d4dc2==='chat'){_0x6c2283[_0x3b37('0x11')]=this[_0x3b37('0x12')]['id'];}else{_0x6c2283[_[_0x3b37('0x13')](_0x3d4dc2)+_0x3b37('0x14')]=this[_0x3b37('0x12')]['id'];}_0x6c2283[_[_0x3b37('0x13')](_0x3d4dc2)+_0x3b37('0x15')]=this[_0x3b37('0x10')]['id'];if(this[_0x3b37('0x10')][_0x3b37('0x16')]){var _0x101c67=_0x5187c8[0x4];if(!_[_0x3b37('0x17')](_0x101c67)){_0x6c2283[_0x3b37('0x18')]=utils['getMustacheRender'](_0x101c67,this);return rpc[_0x3d4dc2+_0x3b37('0x19')][_0x3b37('0x1a')](_0x6c2283)['then'](function(_0x8da54c){logger['info'](_0x3b37('0x6'),_0x188874,_0x6c2283[_0x3b37('0x18')]);})[_0x3b37('0x1b')](function(_0x41a846){logger[_0x3b37('0x1c')]('[%s][AMAZONLEX]\x20%s',_0x188874,JSON[_0x3b37('0x1d')](_0x41a846));})['finally'](function(){logger[_0x3b37('0x1e')]('[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x188874);_0x2c59f1[_0x3b37('0x1f')]();});}else{logger[_0x3b37('0x1e')]('[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x188874);_0x2c59f1[_0x3b37('0x1f')]();}}else{var _0x4143a0=this;var _0x3b983b=new AWS[(_0x3b37('0x20'))]({'accessKeyId':_0x5187c8[0x0],'secretAccessKey':_0x5187c8[0x1],'region':_0x5187c8[0x2]});var _0x5ff819={'botAlias':_0x3b37('0x21'),'botName':_0x5187c8[0x3],'inputText':this[_0x3b37('0x22')]['body'],'userId':this[_0x3b37('0xd')]+':'+this[_0x3b37('0x10')]['id'][_0x3b37('0x23')]()};_0x3b983b[_0x3b37('0x24')](_0x5ff819,function(_0xe88006,_0x47f65a){if(_0xe88006){logger[_0x3b37('0x1c')](_0x3b37('0x6'),_0x188874,_0xe88006['message']);_0x2c59f1['next']();}else if(_0x47f65a&&_0x47f65a[_0x3b37('0x22')]){_0x4143a0[_0x3b37('0x18')][_0x3b37('0x25')]=_0x47f65a;_0x6c2283['body']=_0x47f65a[_0x3b37('0x22')];_0x6c2283['providerName']=_0x3b37('0x25');_0x6c2283[_0x3b37('0x26')]=JSON['stringify'](_0x47f65a);return rpc[_0x3d4dc2+'Message'][_0x3b37('0x1a')](_0x6c2283)['then'](function(_0x1697d2){logger[_0x3b37('0x1e')](_0x3b37('0x6'),_0x188874,_0x6c2283[_0x3b37('0x18')]);if(_0x47f65a[_0x3b37('0x27')]==_0x3b37('0x28')){_0x2c59f1['next']();}else{_0x2c59f1[_0x3b37('0x1f')]();}})[_0x3b37('0x1b')](function(_0xe0db8d){logger['error'](_0x3b37('0x6'),_0x188874,JSON['stringify'](_0xe0db8d));_0x2c59f1[_0x3b37('0x8')]();});}else{_0x2c59f1[_0x3b37('0x8')]();}});}}catch(_0x519bc5){logger['error']('[%s][AMAZONLEX]\x20%s',_0x188874,JSON['stringify'](_0x519bc5));_0x2c59f1[_0x3b37('0x1f')]();}};};