Built motion from commit (unavailable).|2.5.8
[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 _0x5f8e=['../../rpc/whatsappMessage','../../mailRpc','isNil','interaction','created','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20already\x20sent','next','getMustacheRender','contact','YYYY-MM-DD\x20HH:mm:ss','out','message','from','phone','read','subject','startsWith','chat','account','upperFirst','channel','AccountId','InteractionId','mail','service','Smtp','host','port','secure','authentication','auth','user','inReplyTo','messageId','html','<div\x20id=\x22xm-mail-content\x22>','body','<div\x20id=\x22xm-mail-content\x22','<div','</div>','then','create','[RPC][%s][AUTOREPLY]\x20%s','stringify','finally','Message','catch','error','stop','../../../../config/logger','routing','../../rpc/mailMessage','../../rpc/smsMessage'];(function(_0x52bf2e,_0x3bb46a){var _0x2adb39=function(_0x386f90){while(--_0x386f90){_0x52bf2e['push'](_0x52bf2e['shift']());}};_0x2adb39(++_0x3bb46a);}(_0x5f8e,0x17d));var _0xe5f8=function(_0x2abc3d,_0x48edca){_0x2abc3d=_0x2abc3d-0x0;var _0x252745=_0x5f8e[_0x2abc3d];return _0x252745;};'use strict';var _=require('lodash');var moment=require('moment');var utils=require('./utils');var logger=require(_0xe5f8('0x0'))(_0xe5f8('0x1'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0xe5f8('0x2')),'smsMessage':require(_0xe5f8('0x3')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0xe5f8('0x4'))};var mailRpc=require(_0xe5f8('0x5'));exports['consequence']=function(_0x4c0ea0,_0x30f52d){return function(_0xd1cde8){try{if(_0x30f52d[0x0]==='1'&&(_[_0xe5f8('0x6')](this[_0xe5f8('0x7')]['created'])||!this['interaction'][_0xe5f8('0x8')])){logger[_0xe5f8('0x9')](_0xe5f8('0xa'),_0x4c0ea0,_0xe5f8('0xb'));return _0xd1cde8[_0xe5f8('0xc')]();}var _0x4d0adb=this['channel'];var _0x5bacce={'body':utils[_0xe5f8('0xd')](_0x30f52d[0x1],this),'ContactId':this[_0xe5f8('0xe')]['id'],'sentAt':moment()['format'](_0xe5f8('0xf')),'direction':_0xe5f8('0x10')};if(this[_0xe5f8('0x11')]){_0x5bacce['to']=this['message'][_0xe5f8('0x12')]||'';_0x5bacce['cc']=this[_0xe5f8('0x11')]['cc']||'';_0x5bacce[_0xe5f8('0x12')]=this[_0xe5f8('0x11')]['to']||'';_0x5bacce['phone']=this[_0xe5f8('0x11')][_0xe5f8('0x13')]||'';_0x5bacce[_0xe5f8('0x14')]=!![];if(this[_0xe5f8('0x11')][_0xe5f8('0x15')]){_0x5bacce[_0xe5f8('0x15')]='';_0x5bacce[_0xe5f8('0x15')]+=_[_0xe5f8('0x16')](this[_0xe5f8('0x11')]['subject'],'Re:')?'':'Re:\x20';_0x5bacce[_0xe5f8('0x15')]+=this['message'][_0xe5f8('0x15')];}}if(this['channel']===_0xe5f8('0x17')){_0x5bacce['ChatWebsiteId']=this[_0xe5f8('0x18')]['id'];}else{_0x5bacce[_[_0xe5f8('0x19')](this[_0xe5f8('0x1a')])+_0xe5f8('0x1b')]=this[_0xe5f8('0x18')]['id'];}_0x5bacce[_[_0xe5f8('0x19')](this[_0xe5f8('0x1a')])+_0xe5f8('0x1c')]=this[_0xe5f8('0x7')]['id'];if(rpc[this[_0xe5f8('0x1a')]+'Message']){if(this[_0xe5f8('0x1a')]===_0xe5f8('0x1d')){var _0x3503e1={'tls':{'rejectUnauthorized':![]}};if(this[_0xe5f8('0x18')]['Smtp'][_0xe5f8('0x1e')]){_0x3503e1[_0xe5f8('0x1e')]=this[_0xe5f8('0x18')][_0xe5f8('0x1f')][_0xe5f8('0x1e')];}else{_0x3503e1['host']=this[_0xe5f8('0x18')]['Smtp'][_0xe5f8('0x20')];_0x3503e1[_0xe5f8('0x21')]=this[_0xe5f8('0x18')]['Smtp']['port'];_0x3503e1[_0xe5f8('0x22')]=this[_0xe5f8('0x18')][_0xe5f8('0x1f')][_0xe5f8('0x22')];}if(this[_0xe5f8('0x18')]['Smtp'][_0xe5f8('0x23')]){_0x3503e1[_0xe5f8('0x24')]={'user':this[_0xe5f8('0x18')][_0xe5f8('0x1f')][_0xe5f8('0x25')],'pass':this['account'][_0xe5f8('0x1f')]['pass']};}_0x5bacce[_0xe5f8('0x26')]=this[_0xe5f8('0x11')][_0xe5f8('0x27')];_0x5bacce[_0xe5f8('0x28')]=_0xe5f8('0x29')+_['replace'](_0x5bacce[_0xe5f8('0x2a')],_0xe5f8('0x2b'),_0xe5f8('0x2c'))+_0xe5f8('0x2d');return mailRpc['sendMailMessage'](_0x3503e1,_0x5bacce)[_0xe5f8('0x2e')](function(_0x59a116){logger[_0xe5f8('0x9')]('[%s][AUTOREPLY]\x20SMTP\x20SENT',_0x4c0ea0);_0x5bacce['messageId']=_0x59a116[_0xe5f8('0x11')]['messageId'];return rpc[_0x4d0adb+'Message'][_0xe5f8('0x2f')](_0x5bacce);})['then'](function(_0x1971d8){logger['info'](_0xe5f8('0xa'),_0x4c0ea0,JSON['stringify'](_0x1971d8));})['catch'](function(_0x3dcc92){logger['error'](_0xe5f8('0x30'),_0x4c0ea0,JSON[_0xe5f8('0x31')](_0x3dcc92));})[_0xe5f8('0x32')](function(){_0xd1cde8['next']();});}else{return rpc[this[_0xe5f8('0x1a')]+_0xe5f8('0x33')]['create'](_0x5bacce)['then'](function(_0x28c96b){logger['info']('[%s][AUTOREPLY]\x20%s',_0x4c0ea0,_0x5bacce[_0xe5f8('0x2a')]);})[_0xe5f8('0x34')](function(_0xdb2be3){logger[_0xe5f8('0x35')]('[%s][AUTOREPLY]\x20%s',_0x4c0ea0,JSON['stringify'](_0xdb2be3));})[_0xe5f8('0x32')](function(){_0xd1cde8[_0xe5f8('0xc')]();});}}}catch(_0x2ac66a){logger[_0xe5f8('0x35')](_0xe5f8('0xa'),_0x4c0ea0,JSON['stringify'](_0x2ac66a));_0xd1cde8[_0xe5f8('0x36')]();}};};