Built motion from commit c738b9ac.|2.6.25
[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 _0x71f1=['out','channel','whatsapp','interaction','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','isEmpty','body','getMustacheRender','Message','catch','finally','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','LexRuntime','$LATEST','message','toString','next','amazonlex','providerName','stringify','create','Failed','error','lodash','moment','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/mailMessage','consequence','isNil','UserId','info','[%s][AMAZONLEX]\x20%s','contact','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x4709f7,_0x49a0f4){var _0x3b566a=function(_0x2e47b6){while(--_0x2e47b6){_0x4709f7['push'](_0x4709f7['shift']());}};_0x3b566a(++_0x49a0f4);}(_0x71f1,0x187));var _0x171f=function(_0x4f6afc,_0x4dfa88){_0x4f6afc=_0x4f6afc-0x0;var _0x256eeb=_0x71f1[_0x4f6afc];return _0x256eeb;};'use strict';var _=require(_0x171f('0x0'));var moment=require(_0x171f('0x1'));var AWS=require('aws-sdk');var utils=require(_0x171f('0x2'));var logger=require(_0x171f('0x3'))(_0x171f('0x4'));var rpc={'chatMessage':require(_0x171f('0x5')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x171f('0x6')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x171f('0x7')]=function(_0x3aaedb,_0x3c39e5){return function(_0x3d23d2){try{if(!_[_0x171f('0x8')](this['interaction'][_0x171f('0x9')])){logger[_0x171f('0xa')](_0x171f('0xb'),_0x3aaedb,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x3d23d2['next']();}var _0x14256f={'ContactId':this[_0x171f('0xc')]['id'],'sentAt':moment()['format'](_0x171f('0xd')),'direction':_0x171f('0xe')};if(this[_0x171f('0xf')]==='sms'||this[_0x171f('0xf')]===_0x171f('0x10')){_0x14256f['phone']=this[_0x171f('0x11')][_0x171f('0x12')];}var _0x49c299=this['channel'];if(_0x49c299===_0x171f('0x13')){_0x14256f[_0x171f('0x14')]=this[_0x171f('0x15')]['id'];}else{_0x14256f[_[_0x171f('0x16')](_0x49c299)+_0x171f('0x17')]=this[_0x171f('0x15')]['id'];}_0x14256f[_['upperFirst'](_0x49c299)+_0x171f('0x18')]=this['interaction']['id'];if(this[_0x171f('0x11')]['created']){var _0x137264=_0x3c39e5[0x4];if(!_[_0x171f('0x19')](_0x137264)){_0x14256f[_0x171f('0x1a')]=utils[_0x171f('0x1b')](_0x137264,this);return rpc[_0x49c299+_0x171f('0x1c')]['create'](_0x14256f)['then'](function(_0x2974ac){logger['info'](_0x171f('0xb'),_0x3aaedb,_0x14256f[_0x171f('0x1a')]);})[_0x171f('0x1d')](function(_0x4184fc){logger['error']('[%s][AMAZONLEX]\x20%s',_0x3aaedb,JSON['stringify'](_0x4184fc));})[_0x171f('0x1e')](function(){logger[_0x171f('0xa')](_0x171f('0x1f'),_0x3aaedb);_0x3d23d2[_0x171f('0x20')]();});}else{logger[_0x171f('0xa')](_0x171f('0x21'),_0x3aaedb);_0x3d23d2[_0x171f('0x20')]();}}else{var _0xc5b744=this;var _0x42dd12=new AWS[(_0x171f('0x22'))]({'accessKeyId':_0x3c39e5[0x0],'secretAccessKey':_0x3c39e5[0x1],'region':_0x3c39e5[0x2]});var _0x20825e={'botAlias':_0x171f('0x23'),'botName':_0x3c39e5[0x3],'inputText':this[_0x171f('0x24')]['body'],'userId':this[_0x171f('0xf')]+':'+this['interaction']['id'][_0x171f('0x25')]()};_0x42dd12['postText'](_0x20825e,function(_0x57b00b,_0xc4cb96){if(_0x57b00b){logger['error'](_0x171f('0xb'),_0x3aaedb,_0x57b00b[_0x171f('0x24')]);_0x3d23d2[_0x171f('0x26')]();}else if(_0xc4cb96&&_0xc4cb96[_0x171f('0x24')]){_0xc5b744['body'][_0x171f('0x27')]=_0xc4cb96;_0x14256f[_0x171f('0x1a')]=_0xc4cb96[_0x171f('0x24')];_0x14256f[_0x171f('0x28')]='amazonlex';_0x14256f['providerResponse']=JSON[_0x171f('0x29')](_0xc4cb96);return rpc[_0x49c299+_0x171f('0x1c')][_0x171f('0x2a')](_0x14256f)['then'](function(_0x1bf099){logger[_0x171f('0xa')]('[%s][AMAZONLEX]\x20%s',_0x3aaedb,_0x14256f[_0x171f('0x1a')]);if(_0xc4cb96['dialogState']==_0x171f('0x2b')){_0x3d23d2[_0x171f('0x26')]();}else{_0x3d23d2[_0x171f('0x20')]();}})[_0x171f('0x1d')](function(_0x365f08){logger[_0x171f('0x2c')]('[%s][AMAZONLEX]\x20%s',_0x3aaedb,JSON['stringify'](_0x365f08));_0x3d23d2[_0x171f('0x26')]();});}else{_0x3d23d2[_0x171f('0x26')]();}});}}catch(_0x3032e4){logger['error'](_0x171f('0xb'),_0x3aaedb,JSON['stringify'](_0x3032e4));_0x3d23d2[_0x171f('0x20')]();}};};