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