d7c73f88b7ede95517380c41b67612fbe5460569
[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 _0x6462=['../../rpc/faxMessage','../../rpc/whatsappMessage','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','phone','chat','ChatWebsiteId','upperFirst','AccountId','account','InteractionId','created','isEmpty','body','getMustacheRender','create','then','info','[%s][AMAZONLEX]\x20%s','finally','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','$LATEST','message','postText','error','amazonlex','providerName','providerResponse','stringify','Message','dialogState','Failed','catch','next','lodash','aws-sdk','../../rpc/openchannelMessage','../../rpc/smsMessage'];(function(_0x555ebb,_0x4b1b68){var _0x3c0a4a=function(_0x312e2f){while(--_0x312e2f){_0x555ebb['push'](_0x555ebb['shift']());}};_0x3c0a4a(++_0x4b1b68);}(_0x6462,0x86));var _0x2646=function(_0x5e6e2f,_0x43869d){_0x5e6e2f=_0x5e6e2f-0x0;var _0x54a371=_0x6462[_0x5e6e2f];return _0x54a371;};'use strict';var _=require(_0x2646('0x0'));var moment=require('moment');var AWS=require(_0x2646('0x1'));var utils=require('./utils');var logger=require('../../../../config/logger')('routing');var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x2646('0x2')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x2646('0x3')),'faxMessage':require(_0x2646('0x4')),'whatsappMessage':require(_0x2646('0x5'))};exports['consequence']=function(_0x21f2a1,_0x5c7515){return function(_0x2d19bb){try{if(!_['isNil'](this[_0x2646('0x6')][_0x2646('0x7')])){logger['info']('[%s][AMAZONLEX]\x20%s',_0x21f2a1,_0x2646('0x8'));return _0x2d19bb['next']();}var _0x3f3446={'ContactId':this['contact']['id'],'sentAt':moment()[_0x2646('0x9')](_0x2646('0xa')),'direction':_0x2646('0xb')};if(this[_0x2646('0xc')]===_0x2646('0xd')||this[_0x2646('0xc')]==='whatsapp'){_0x3f3446[_0x2646('0xe')]=this[_0x2646('0x6')]['phone'];}var _0x3ea3af=this['channel'];if(_0x3ea3af===_0x2646('0xf')){_0x3f3446[_0x2646('0x10')]=this['account']['id'];}else{_0x3f3446[_[_0x2646('0x11')](_0x3ea3af)+_0x2646('0x12')]=this[_0x2646('0x13')]['id'];}_0x3f3446[_['upperFirst'](_0x3ea3af)+_0x2646('0x14')]=this['interaction']['id'];if(this['interaction'][_0x2646('0x15')]){var _0x413c0e=_0x5c7515[0x4];if(!_[_0x2646('0x16')](_0x413c0e)){_0x3f3446[_0x2646('0x17')]=utils[_0x2646('0x18')](_0x413c0e,this);return rpc[_0x3ea3af+'Message'][_0x2646('0x19')](_0x3f3446)[_0x2646('0x1a')](function(_0x410605){logger[_0x2646('0x1b')]('[%s][AMAZONLEX]\x20%s',_0x21f2a1,_0x3f3446[_0x2646('0x17')]);})['catch'](function(_0xf098ea){logger['error'](_0x2646('0x1c'),_0x21f2a1,JSON['stringify'](_0xf098ea));})[_0x2646('0x1d')](function(){logger[_0x2646('0x1b')](_0x2646('0x1e'),_0x21f2a1);_0x2d19bb[_0x2646('0x1f')]();});}else{logger[_0x2646('0x1b')](_0x2646('0x20'),_0x21f2a1);_0x2d19bb[_0x2646('0x1f')]();}}else{var _0x57bb46=this;var _0x59e026=new AWS['LexRuntime']({'accessKeyId':_0x5c7515[0x0],'secretAccessKey':_0x5c7515[0x1],'region':_0x5c7515[0x2]});var _0x3cbe6f={'botAlias':_0x2646('0x21'),'botName':_0x5c7515[0x3],'inputText':this[_0x2646('0x22')][_0x2646('0x17')],'userId':this[_0x2646('0xc')]+':'+this[_0x2646('0x6')]['id']['toString']()};_0x59e026[_0x2646('0x23')](_0x3cbe6f,function(_0x506d83,_0x37722d){if(_0x506d83){logger[_0x2646('0x24')](_0x2646('0x1c'),_0x21f2a1,_0x506d83[_0x2646('0x22')]);_0x2d19bb['next']();}else if(_0x37722d&&_0x37722d['message']){_0x57bb46[_0x2646('0x17')][_0x2646('0x25')]=_0x37722d;_0x3f3446[_0x2646('0x17')]=_0x37722d[_0x2646('0x22')];_0x3f3446[_0x2646('0x26')]=_0x2646('0x25');_0x3f3446[_0x2646('0x27')]=JSON[_0x2646('0x28')](_0x37722d);return rpc[_0x3ea3af+_0x2646('0x29')]['create'](_0x3f3446)[_0x2646('0x1a')](function(_0x50046d){logger['info']('[%s][AMAZONLEX]\x20%s',_0x21f2a1,_0x3f3446[_0x2646('0x17')]);if(_0x37722d[_0x2646('0x2a')]==_0x2646('0x2b')){_0x2d19bb['next']();}else{_0x2d19bb['stop']();}})[_0x2646('0x2c')](function(_0xe97f01){logger['error'](_0x2646('0x1c'),_0x21f2a1,JSON['stringify'](_0xe97f01));_0x2d19bb[_0x2646('0x2d')]();});}else{_0x2d19bb[_0x2646('0x2d')]();}});}}catch(_0x5821c5){logger[_0x2646('0x24')](_0x2646('0x1c'),_0x21f2a1,JSON[_0x2646('0x28')](_0x5821c5));_0x2d19bb[_0x2646('0x1f')]();}};};