bde9c299b07ce2161fd497da1df08eb52c68ca77
[motion2.git] / server / services / routing / server / applications / autoreply.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 _0x5a66=['stop','moment','./utils','../../../../config/logger','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','consequence','isNil','interaction','created','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20already\x20sent','next','channel','getMustacheRender','format','YYYY-MM-DD\x20HH:mm:ss','out','message','from','phone','read','subject','startsWith','Re:','Re:\x20','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','Message','mail','Smtp','service','host','port','secure','authentication','auth','user','pass','inReplyTo','html','body','<div\x20id=\x22xm-mail-content\x22','<div','</div>','sendMailMessage','then','messageId','create','stringify','catch','error'];(function(_0x1ec7a7,_0x31afbc){var _0x3f9919=function(_0x5717c2){while(--_0x5717c2){_0x1ec7a7['push'](_0x1ec7a7['shift']());}};_0x3f9919(++_0x31afbc);}(_0x5a66,0x169));var _0x65a6=function(_0x5571aa,_0x3446bc){_0x5571aa=_0x5571aa-0x0;var _0xbf4c5f=_0x5a66[_0x5571aa];return _0xbf4c5f;};'use strict';var _=require('lodash');var moment=require(_0x65a6('0x0'));var utils=require(_0x65a6('0x1'));var logger=require(_0x65a6('0x2'))('routing');var rpc={'chatMessage':require(_0x65a6('0x3')),'openchannelMessage':require(_0x65a6('0x4')),'mailMessage':require(_0x65a6('0x5')),'smsMessage':require(_0x65a6('0x6')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0x65a6('0x7'))};var mailRpc=require('../../mailRpc');exports[_0x65a6('0x8')]=function(_0x317d25,_0xb53c43){return function(_0x59b12f){try{if(_0xb53c43[0x0]==='1'&&(_[_0x65a6('0x9')](this[_0x65a6('0xa')]['created'])||!this[_0x65a6('0xa')][_0x65a6('0xb')])){logger[_0x65a6('0xc')](_0x65a6('0xd'),_0x317d25,_0x65a6('0xe'));return _0x59b12f[_0x65a6('0xf')]();}var _0x17bcd3=this[_0x65a6('0x10')];var _0x44b721={'body':utils[_0x65a6('0x11')](_0xb53c43[0x1],this),'ContactId':this['contact']['id'],'sentAt':moment()[_0x65a6('0x12')](_0x65a6('0x13')),'direction':_0x65a6('0x14')};if(this[_0x65a6('0x15')]){_0x44b721['to']=this[_0x65a6('0x15')][_0x65a6('0x16')]||'';_0x44b721['cc']=this[_0x65a6('0x15')]['cc']||'';_0x44b721[_0x65a6('0x16')]=this['message']['to']||'';_0x44b721['phone']=this['message'][_0x65a6('0x17')]||'';_0x44b721[_0x65a6('0x18')]=!![];if(this[_0x65a6('0x15')][_0x65a6('0x19')]){_0x44b721['subject']='';_0x44b721['subject']+=_[_0x65a6('0x1a')](this[_0x65a6('0x15')][_0x65a6('0x19')],_0x65a6('0x1b'))?'':_0x65a6('0x1c');_0x44b721[_0x65a6('0x19')]+=this['message'][_0x65a6('0x19')];}}if(this[_0x65a6('0x10')]===_0x65a6('0x1d')){_0x44b721[_0x65a6('0x1e')]=this[_0x65a6('0x1f')]['id'];}else{_0x44b721[_[_0x65a6('0x20')](this[_0x65a6('0x10')])+_0x65a6('0x21')]=this['account']['id'];}_0x44b721[_[_0x65a6('0x20')](this[_0x65a6('0x10')])+_0x65a6('0x22')]=this[_0x65a6('0xa')]['id'];if(rpc[this['channel']+_0x65a6('0x23')]){if(this['channel']===_0x65a6('0x24')){var _0x19595e={'tls':{'rejectUnauthorized':![]}};if(this[_0x65a6('0x1f')][_0x65a6('0x25')][_0x65a6('0x26')]){_0x19595e[_0x65a6('0x26')]=this[_0x65a6('0x1f')]['Smtp'][_0x65a6('0x26')];}else{_0x19595e[_0x65a6('0x27')]=this[_0x65a6('0x1f')][_0x65a6('0x25')][_0x65a6('0x27')];_0x19595e[_0x65a6('0x28')]=this['account']['Smtp']['port'];_0x19595e[_0x65a6('0x29')]=this[_0x65a6('0x1f')][_0x65a6('0x25')][_0x65a6('0x29')];}if(this[_0x65a6('0x1f')]['Smtp'][_0x65a6('0x2a')]){_0x19595e[_0x65a6('0x2b')]={'user':this[_0x65a6('0x1f')][_0x65a6('0x25')][_0x65a6('0x2c')],'pass':this['account'][_0x65a6('0x25')][_0x65a6('0x2d')]};}_0x44b721[_0x65a6('0x2e')]=this[_0x65a6('0x15')]['messageId'];_0x44b721[_0x65a6('0x2f')]='<div\x20id=\x22xm-mail-content\x22>'+_['replace'](_0x44b721[_0x65a6('0x30')],_0x65a6('0x31'),_0x65a6('0x32'))+_0x65a6('0x33');return mailRpc[_0x65a6('0x34')](_0x19595e,_0x44b721)[_0x65a6('0x35')](function(_0x576e89){logger['info']('[%s][AUTOREPLY]\x20SMTP\x20SENT',_0x317d25);_0x44b721[_0x65a6('0x36')]=_0x576e89[_0x65a6('0x15')][_0x65a6('0x36')];return rpc[_0x17bcd3+'Message'][_0x65a6('0x37')](_0x44b721);})['then'](function(_0x4a73a7){logger[_0x65a6('0xc')](_0x65a6('0xd'),_0x317d25,JSON[_0x65a6('0x38')](_0x4a73a7));})[_0x65a6('0x39')](function(_0x3184f0){logger[_0x65a6('0x3a')]('[RPC][%s][AUTOREPLY]\x20%s',_0x317d25,JSON[_0x65a6('0x38')](_0x3184f0));})['finally'](function(){_0x59b12f[_0x65a6('0xf')]();});}else{return rpc[this['channel']+_0x65a6('0x23')][_0x65a6('0x37')](_0x44b721)[_0x65a6('0x35')](function(_0x4643d3){logger['info'](_0x65a6('0xd'),_0x317d25,_0x44b721[_0x65a6('0x30')]);})[_0x65a6('0x39')](function(_0x5c739a){logger[_0x65a6('0x3a')](_0x65a6('0xd'),_0x317d25,JSON[_0x65a6('0x38')](_0x5c739a));})['finally'](function(){_0x59b12f[_0x65a6('0xf')]();});}}}catch(_0x485b2e){logger[_0x65a6('0x3a')](_0x65a6('0xd'),_0x317d25,JSON['stringify'](_0x485b2e));_0x59b12f[_0x65a6('0x3b')]();}};};