b4f9ec1fb7ee580c99cf116dff3d57be387675d5
[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 _0xd33b=['moment','../../../../config/logger','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','../../mailRpc','consequence','interaction','created','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20already\x20sent','channel','getMustacheRender','contact','format','out','message','from','phone','read','startsWith','Re:','Re:\x20','subject','chat','account','upperFirst','AccountId','Message','Smtp','service','host','port','secure','user','pass','messageId','html','<div\x20id=\x22xm-mail-content\x22>','replace','body','sendMailMessage','[%s][AUTOREPLY]\x20SMTP\x20SENT','then','stringify','catch','[RPC][%s][AUTOREPLY]\x20%s','finally','next','create','error','stop','lodash'];(function(_0x1d87fc,_0x1e5321){var _0x492b56=function(_0x4c6b16){while(--_0x4c6b16){_0x1d87fc['push'](_0x1d87fc['shift']());}};_0x492b56(++_0x1e5321);}(_0xd33b,0x1af));var _0xbd33=function(_0x2ccd22,_0x3d5b5c){_0x2ccd22=_0x2ccd22-0x0;var _0x2f4afb=_0xd33b[_0x2ccd22];return _0x2f4afb;};'use strict';var _=require(_0xbd33('0x0'));var moment=require(_0xbd33('0x1'));var utils=require('./utils');var logger=require(_0xbd33('0x2'))('routing');var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0xbd33('0x3')),'smsMessage':require(_0xbd33('0x4')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0xbd33('0x5'))};var mailRpc=require(_0xbd33('0x6'));exports[_0xbd33('0x7')]=function(_0x2b9c0d,_0x59d195){return function(_0x47698d){try{if(_0x59d195[0x0]==='1'&&(_['isNil'](this[_0xbd33('0x8')][_0xbd33('0x9')])||!this[_0xbd33('0x8')][_0xbd33('0x9')])){logger[_0xbd33('0xa')](_0xbd33('0xb'),_0x2b9c0d,_0xbd33('0xc'));return _0x47698d['next']();}var _0x1f6496=this[_0xbd33('0xd')];var _0x4d8942={'body':utils[_0xbd33('0xe')](_0x59d195[0x1],this),'ContactId':this[_0xbd33('0xf')]['id'],'sentAt':moment()[_0xbd33('0x10')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0xbd33('0x11')};if(this[_0xbd33('0x12')]){_0x4d8942['to']=this[_0xbd33('0x12')][_0xbd33('0x13')]||'';_0x4d8942['cc']=this[_0xbd33('0x12')]['cc']||'';_0x4d8942[_0xbd33('0x13')]=this[_0xbd33('0x12')]['to']||'';_0x4d8942['phone']=this[_0xbd33('0x12')][_0xbd33('0x14')]||'';_0x4d8942[_0xbd33('0x15')]=!![];if(this['message']['subject']){_0x4d8942['subject']='';_0x4d8942['subject']+=_[_0xbd33('0x16')](this[_0xbd33('0x12')]['subject'],_0xbd33('0x17'))?'':_0xbd33('0x18');_0x4d8942['subject']+=this[_0xbd33('0x12')][_0xbd33('0x19')];}}if(this[_0xbd33('0xd')]===_0xbd33('0x1a')){_0x4d8942['ChatWebsiteId']=this[_0xbd33('0x1b')]['id'];}else{_0x4d8942[_[_0xbd33('0x1c')](this[_0xbd33('0xd')])+_0xbd33('0x1d')]=this[_0xbd33('0x1b')]['id'];}_0x4d8942[_[_0xbd33('0x1c')](this['channel'])+'InteractionId']=this['interaction']['id'];if(rpc[this[_0xbd33('0xd')]+_0xbd33('0x1e')]){if(this['channel']==='mail'){var _0x4d021a={'tls':{'rejectUnauthorized':![]}};if(this['account'][_0xbd33('0x1f')]['service']){_0x4d021a[_0xbd33('0x20')]=this[_0xbd33('0x1b')][_0xbd33('0x1f')][_0xbd33('0x20')];}else{_0x4d021a[_0xbd33('0x21')]=this['account']['Smtp'][_0xbd33('0x21')];_0x4d021a[_0xbd33('0x22')]=this[_0xbd33('0x1b')][_0xbd33('0x1f')][_0xbd33('0x22')];_0x4d021a[_0xbd33('0x23')]=this[_0xbd33('0x1b')][_0xbd33('0x1f')][_0xbd33('0x23')];}if(this[_0xbd33('0x1b')]['Smtp']['authentication']){_0x4d021a['auth']={'user':this[_0xbd33('0x1b')][_0xbd33('0x1f')][_0xbd33('0x24')],'pass':this[_0xbd33('0x1b')][_0xbd33('0x1f')][_0xbd33('0x25')]};}_0x4d8942['inReplyTo']=this[_0xbd33('0x12')][_0xbd33('0x26')];_0x4d8942[_0xbd33('0x27')]=_0xbd33('0x28')+_[_0xbd33('0x29')](_0x4d8942[_0xbd33('0x2a')],'<div\x20id=\x22xm-mail-content\x22','<div')+'</div>';return mailRpc[_0xbd33('0x2b')](_0x4d021a,_0x4d8942)['then'](function(_0x1b9879){logger[_0xbd33('0xa')](_0xbd33('0x2c'),_0x2b9c0d);_0x4d8942[_0xbd33('0x26')]=_0x1b9879['message'][_0xbd33('0x26')];return rpc[_0x1f6496+_0xbd33('0x1e')]['create'](_0x4d8942);})[_0xbd33('0x2d')](function(_0x59bf10){logger[_0xbd33('0xa')](_0xbd33('0xb'),_0x2b9c0d,JSON[_0xbd33('0x2e')](_0x59bf10));})[_0xbd33('0x2f')](function(_0x304b3f){logger['error'](_0xbd33('0x30'),_0x2b9c0d,JSON['stringify'](_0x304b3f));})[_0xbd33('0x31')](function(){_0x47698d[_0xbd33('0x32')]();});}else{return rpc[this[_0xbd33('0xd')]+_0xbd33('0x1e')][_0xbd33('0x33')](_0x4d8942)[_0xbd33('0x2d')](function(_0x19c0de){logger[_0xbd33('0xa')](_0xbd33('0xb'),_0x2b9c0d,_0x4d8942[_0xbd33('0x2a')]);})[_0xbd33('0x2f')](function(_0x4701d6){logger[_0xbd33('0x34')]('[%s][AUTOREPLY]\x20%s',_0x2b9c0d,JSON[_0xbd33('0x2e')](_0x4701d6));})[_0xbd33('0x31')](function(){_0x47698d[_0xbd33('0x32')]();});}}}catch(_0x37f62a){logger['error'](_0xbd33('0xb'),_0x2b9c0d,JSON[_0xbd33('0x2e')](_0x37f62a));_0x47698d[_0xbd33('0x35')]();}};};