Built motion from commit f7863d46.|2.5.41
[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 _0x8510=['../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../mailRpc','consequence','channel','mail','body','isAutoreply','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','next','isNil','interaction','created','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','YYYY-MM-DD\x20HH:mm:ss','out','message','phone','read','subject','Re:','chat','ChatWebsiteId','upperFirst','AccountId','account','InteractionId','Message','service','Smtp','host','port','secure','auth','user','messageId','html','replace','auto-replied','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','stringify','catch','[RPC][%s][AUTOREPLY]\x20%s','finally','resolve','autoreplyExecuted','update','error','Interaction','stop','moment','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction'];(function(_0x5c4e16,_0x113035){var _0x36044a=function(_0xde2f25){while(--_0xde2f25){_0x5c4e16['push'](_0x5c4e16['shift']());}};_0x36044a(++_0x113035);}(_0x8510,0xbf));var _0x0851=function(_0x39bc4a,_0x595147){_0x39bc4a=_0x39bc4a-0x0;var _0x436b0d=_0x8510[_0x39bc4a];return _0x436b0d;};'use strict';var _=require('lodash');var moment=require(_0x0851('0x0'));var utils=require('./utils');var logger=require(_0x0851('0x1'))(_0x0851('0x2'));var rpc={'chatMessage':require(_0x0851('0x3')),'openchannelMessage':require(_0x0851('0x4')),'mailMessage':require(_0x0851('0x5')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x0851('0x6')),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require(_0x0851('0x7')),'openchannelInteraction':require(_0x0851('0x8')),'mailInteraction':require(_0x0851('0x9')),'smsInteraction':require(_0x0851('0xa')),'faxInteraction':require(_0x0851('0xb')),'whatsappInteraction':require(_0x0851('0xc'))};var mailRpc=require(_0x0851('0xd'));exports[_0x0851('0xe')]=function(_0x2ee155,_0x2408b5,_0x1aece0,_0x10b492){return function(_0x2d6274){try{var _0x4a6cb9=this[_0x0851('0xf')];if(_0x4a6cb9===_0x0851('0x10')&&_0x10b492[_0x0851('0x11')][_0x0851('0x12')]){logger[_0x0851('0x13')](_0x0851('0x14'),_0x2ee155,_0x0851('0x15'));return _0x2d6274[_0x0851('0x16')]();}if(_0x2408b5[0x0]==='1'&&(_[_0x0851('0x17')](this[_0x0851('0x18')][_0x0851('0x19')])||!this[_0x0851('0x18')][_0x0851('0x19')])){logger['info'](_0x0851('0x14'),_0x2ee155,'Autoreply\x20already\x20sent');return _0x2d6274[_0x0851('0x16')]();}if(_0x2408b5[0x0]==='2'&&this[_0x0851('0x18')]['autoreplyExecuted']){logger[_0x0851('0x13')](_0x0851('0x1a'),_0x2ee155,_0x0851('0x1b'));return _0x2d6274[_0x0851('0x16')]();}var _0x2a2bdf={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0x0851('0x1c')),'direction':_0x0851('0x1d')};if(this[_0x0851('0xf')]==='mail'){_0x2a2bdf[_0x0851('0x11')]=utils['getMustacheRender'](_0x2408b5[0x2],this);}else{_0x2a2bdf['body']=utils['getMustacheRender'](_0x2408b5[0x1],this);}if(this[_0x0851('0x1e')]){_0x2a2bdf['to']=this[_0x0851('0x1e')]['from']||'';if(this[_0x0851('0xf')]===_0x0851('0x10')&&_0x2408b5[0x1]==='1'){_0x2a2bdf['cc']=this['message']['cc']||'';}_0x2a2bdf['from']=this[_0x0851('0x1e')]['to']||'';_0x2a2bdf[_0x0851('0x1f')]=this[_0x0851('0x1e')][_0x0851('0x1f')]||'';_0x2a2bdf[_0x0851('0x20')]=!![];if(this[_0x0851('0x1e')][_0x0851('0x21')]){_0x2a2bdf['subject']='';_0x2a2bdf[_0x0851('0x21')]+=_['startsWith'](this[_0x0851('0x1e')]['subject'],_0x0851('0x22'))?'':'Re:\x20';_0x2a2bdf['subject']+=this['message'][_0x0851('0x21')];}}if(this[_0x0851('0xf')]===_0x0851('0x23')){_0x2a2bdf[_0x0851('0x24')]=this['account']['id'];}else{_0x2a2bdf[_[_0x0851('0x25')](this[_0x0851('0xf')])+_0x0851('0x26')]=this[_0x0851('0x27')]['id'];}_0x2a2bdf[_[_0x0851('0x25')](this[_0x0851('0xf')])+_0x0851('0x28')]=this[_0x0851('0x18')]['id'];var _0x442e51=this[_0x0851('0x18')];if(rpc[this[_0x0851('0xf')]+_0x0851('0x29')]){if(this[_0x0851('0xf')]===_0x0851('0x10')){var _0x2250e6={'tls':{'rejectUnauthorized':![]}};if(this[_0x0851('0x27')]['Smtp']['service']){_0x2250e6[_0x0851('0x2a')]=this['account'][_0x0851('0x2b')][_0x0851('0x2a')];}else{_0x2250e6['host']=this[_0x0851('0x27')][_0x0851('0x2b')][_0x0851('0x2c')];_0x2250e6[_0x0851('0x2d')]=this[_0x0851('0x27')]['Smtp']['port'];_0x2250e6['secure']=this['account'][_0x0851('0x2b')][_0x0851('0x2e')];}if(this[_0x0851('0x27')]['Smtp']['authentication']){_0x2250e6[_0x0851('0x2f')]={'user':this[_0x0851('0x27')]['Smtp'][_0x0851('0x30')],'pass':this[_0x0851('0x27')][_0x0851('0x2b')]['pass']};}_0x2a2bdf['inReplyTo']=this[_0x0851('0x1e')][_0x0851('0x31')];_0x2a2bdf[_0x0851('0x32')]='<div\x20id=\x22xm-mail-content\x22>'+_[_0x0851('0x33')](_0x2a2bdf['body'],'<div\x20id=\x22xm-mail-content\x22','<div')+'</div>';_0x2a2bdf['headers']={'Auto-Submitted':_0x0851('0x34'),'X-Auto-Response-Suppress':'All','Precedence':'auto_reply'};return mailRpc[_0x0851('0x35')](_0x2250e6,_0x2a2bdf)[_0x0851('0x36')](function(_0x1122f9){logger[_0x0851('0x13')](_0x0851('0x37'),_0x2ee155);_0x2a2bdf[_0x0851('0x31')]=_0x1122f9[_0x0851('0x1e')][_0x0851('0x31')];return rpc[_0x4a6cb9+_0x0851('0x29')][_0x0851('0x38')](_0x2a2bdf);})[_0x0851('0x36')](function(_0x2964a6){logger[_0x0851('0x13')](_0x0851('0x14'),_0x2ee155,JSON[_0x0851('0x39')](_0x2964a6));})[_0x0851('0x3a')](function(_0x3412b2){logger['error'](_0x0851('0x3b'),_0x2ee155,JSON['stringify'](_0x3412b2));})[_0x0851('0x3c')](function(){Promise[_0x0851('0x3d')]()[_0x0851('0x36')](function(){if(_0x2408b5[0x0]!=='2'||_0x442e51[_0x0851('0x3e')])return;return rpc[_0x4a6cb9+'Interaction'][_0x0851('0x3f')](_0x442e51['id'],{'autoreplyExecuted':!![]})[_0x0851('0x36')](function(_0x2448ba){logger[_0x0851('0x13')](_0x0851('0x1a'),_0x2ee155,JSON[_0x0851('0x39')](_0x2448ba));})[_0x0851('0x3a')](function(_0x563704){logger[_0x0851('0x40')]('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x2ee155,JSON[_0x0851('0x39')](_0x563704));});})[_0x0851('0x36')](function(){_0x2d6274[_0x0851('0x16')]();});});}else{return rpc[this[_0x0851('0xf')]+_0x0851('0x29')][_0x0851('0x38')](_0x2a2bdf)[_0x0851('0x36')](function(_0x2881b3){logger[_0x0851('0x13')](_0x0851('0x14'),_0x2ee155,_0x2a2bdf[_0x0851('0x11')]);})[_0x0851('0x3a')](function(_0x4bfa70){logger[_0x0851('0x40')]('[%s][AUTOREPLY]\x20%s',_0x2ee155,JSON[_0x0851('0x39')](_0x4bfa70));})[_0x0851('0x3c')](function(){Promise[_0x0851('0x3d')]()[_0x0851('0x36')](function(){if(_0x2408b5[0x0]!=='2'||_0x442e51[_0x0851('0x3e')])return;return rpc[_0x4a6cb9+_0x0851('0x41')][_0x0851('0x3f')](_0x442e51['id'],{'autoreplyExecuted':!![]})[_0x0851('0x36')](function(_0xb144f0){logger[_0x0851('0x13')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x2ee155,JSON[_0x0851('0x39')](_0xb144f0));})[_0x0851('0x3a')](function(_0x2f42b4){logger['error']('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x2ee155,JSON[_0x0851('0x39')](_0x2f42b4));});})[_0x0851('0x36')](function(){_0x2d6274[_0x0851('0x16')]();});});}}}catch(_0x117c80){logger[_0x0851('0x40')](_0x0851('0x14'),_0x2ee155,JSON['stringify'](_0x117c80));_0x2d6274[_0x0851('0x42')]();}};};