Built motion from commit (unavailable).|2.5.1
[motion2.git] / server / config / schedule / index.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 _0xc2d1=['Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','email\x20sent','catch','error\x20mail','data','subtractNumber','subtractNumber\x20null\x20or\x20undefined','isNil','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','exec\x20defaul\x20report\x20id:%s','DefaultReportId','runReport','CustomReportId','no\x20report\x20id','Schedule','keys','jobs','map','difference','intersection','length','toString','exists','stop','deleteJob','delete\x20cron','toRun','index','my\x20id','resolve','cron','active','isBetween','endAt','add','start','add\x20cron','stop\x20cron','startAt','run','util','lodash','moment','cron-job-manager','bluebird','../logger','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','info','email','service','MailAccount','Smtp','host','port','secure','authentication','auth','user','pass','format','\x22%s\x22\x20<%s>','name','bcc','subtractUnit','join','../../files/reports','savename','%s.%s','basename','zip','existsSync','status','message','attachments','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','Sent'];(function(_0x569d56,_0x22014c){var _0x21f0ef=function(_0x43c67d){while(--_0x43c67d){_0x569d56['push'](_0x569d56['shift']());}};_0x21f0ef(++_0x22014c);}(_0xc2d1,0x199));var _0x1c2d=function(_0x1de9aa,_0x2795a1){_0x1de9aa=_0x1de9aa-0x0;var _0x43e7e9=_0xc2d1[_0x1de9aa];return _0x43e7e9;};'use strict';var fs=require('fs');var util=require(_0x1c2d('0x0'));var path=require('path');var _=require(_0x1c2d('0x1'));var moment=require(_0x1c2d('0x2'));var CronJobManager=require(_0x1c2d('0x3'));var jayson=require('jayson/promise');var BPromise=require(_0x1c2d('0x4'));var logger=require(_0x1c2d('0x5'))(_0x1c2d('0x6'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0x1c2d('0x7'));var analyticDefaultReportController=require(_0x1c2d('0x8'));var client=jayson['client'][_0x1c2d('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x12d4f4,_0x3cbcfd){return function(){logger[_0x1c2d('0xa')]('Try\x20to\x20send\x20a\x20mail\x20to',_0x12d4f4[_0x1c2d('0xb')]);var _0x142e0f=!![];var _0xda4a0a={'tls':{'rejectUnauthorized':![]}};if(_0x12d4f4['MailAccount']['Smtp'][_0x1c2d('0xc')]){_0xda4a0a[_0x1c2d('0xc')]=_0x12d4f4[_0x1c2d('0xd')][_0x1c2d('0xe')][_0x1c2d('0xc')];}else{_0xda4a0a[_0x1c2d('0xf')]=_0x12d4f4['MailAccount'][_0x1c2d('0xe')][_0x1c2d('0xf')];_0xda4a0a['port']=_0x12d4f4[_0x1c2d('0xd')][_0x1c2d('0xe')][_0x1c2d('0x10')];_0xda4a0a[_0x1c2d('0x11')]=_0x12d4f4[_0x1c2d('0xd')][_0x1c2d('0xe')]['secure'];}if(_0x12d4f4['MailAccount'][_0x1c2d('0xe')][_0x1c2d('0x12')]){_0xda4a0a[_0x1c2d('0x13')]={'user':_0x12d4f4['MailAccount'][_0x1c2d('0xe')][_0x1c2d('0x14')],'pass':_0x12d4f4['MailAccount'][_0x1c2d('0xe')][_0x1c2d('0x15')]};}var _0x5568d9={'account':_0xda4a0a,'message':{'from':util[_0x1c2d('0x16')](_0x1c2d('0x17'),_0x12d4f4[_0x1c2d('0xd')][_0x1c2d('0x18')],_0x12d4f4['MailAccount']['email']||_0x12d4f4[_0x1c2d('0xd')][_0x1c2d('0xe')][_0x1c2d('0x14')]),'to':_0x12d4f4[_0x1c2d('0xb')],'cc':_0x12d4f4['cc'],'bcc':_0x12d4f4[_0x1c2d('0x19')],'subject':util[_0x1c2d('0x16')]('Report\x20%s\x20last\x20%s\x20%s',_0x3cbcfd[_0x1c2d('0x18')],_0x12d4f4['subtractNumber'],_0x12d4f4[_0x1c2d('0x1a')])}};var _0x1b3438=path[_0x1c2d('0x1b')](__dirname,_0x1c2d('0x1c'));var _0x1b87fa=_0x3cbcfd[_0x1c2d('0x1d')];var _0x4770a9=util['format'](_0x1c2d('0x1e'),path[_0x1c2d('0x1f')](_0x3cbcfd[_0x1c2d('0x1d')],path['extname'](_0x3cbcfd['savename'])),_0x1c2d('0x20'));var _0x223117=path[_0x1c2d('0x1b')](_0x1b3438,_0x1b87fa);var _0x575634=path[_0x1c2d('0x1b')](_0x1b3438,_0x4770a9);if(fs[_0x1c2d('0x21')](_0x223117)){_0x3cbcfd[_0x1c2d('0x22')]='Sent';_0x5568d9[_0x1c2d('0x23')][_0x1c2d('0x24')]=[{'filename':_0x1b87fa,'path':_0x223117}];_0x5568d9[_0x1c2d('0x23')][_0x1c2d('0x25')]=util['format'](_0x1c2d('0x26'),JSON[_0x1c2d('0x27')](_0x3cbcfd,null,0x2));}else if(fs[_0x1c2d('0x21')](_0x575634)){_0x3cbcfd['status']=_0x1c2d('0x28');_0x5568d9['message'][_0x1c2d('0x24')]=[{'filename':_0x4770a9,'path':_0x575634}];}else{_0x5568d9[_0x1c2d('0x23')][_0x1c2d('0x25')]=_0x1c2d('0x29');if(!_0x12d4f4['sendIfEmpty']){_0x142e0f=![];logger[_0x1c2d('0xa')](_0x1c2d('0x2a'));}}if(_0x142e0f){return client[_0x1c2d('0x2b')](_0x1c2d('0x2c'),_0x5568d9)[_0x1c2d('0x2d')](function(_0xa4fb65){if(_0xa4fb65[_0x1c2d('0x2e')]){return logger[_0x1c2d('0x2e')]('error\x20mail',JSON['stringify'](_0xa4fb65));}return logger[_0x1c2d('0xa')](_0x1c2d('0x2f'));})[_0x1c2d('0x30')](function(_0x417298){return logger['error'](_0x1c2d('0x31'),JSON['stringify'](_0x417298));});}};}function handleError(){return function(_0x347205){return logger[_0x1c2d('0x2e')](JSON['stringify'](_0x347205));};}function handleResult(_0x39c361){return function(_0x282d6c){logger[_0x1c2d('0xa')](_0x1c2d('0x32'),JSON[_0x1c2d('0x27')](_0x282d6c));if(_0x39c361[_0x1c2d('0xd')]&&_0x39c361[_0x1c2d('0xd')]['Smtp']&&!_['isNil'](_0x39c361[_0x1c2d('0xb')])){setTimeout(handleSendEmail(_0x39c361,_0x282d6c),0x3c*0x3e8);}};}function handleJob(_0x4bff20){return function(){try{if(_['isNil'](_0x4bff20[_0x1c2d('0x33')])){return logger['info'](_0x1c2d('0x34'));}if(_[_0x1c2d('0x35')](_0x4bff20[_0x1c2d('0x1a')])){return logger[_0x1c2d('0xa')](_0x1c2d('0x36'));}var _0x22fef7={'startDate':moment()[_0x1c2d('0x37')](_0x4bff20[_0x1c2d('0x33')],_0x4bff20[_0x1c2d('0x1a')])[_0x1c2d('0x16')](_0x1c2d('0x38')),'endDate':moment()['format'](_0x1c2d('0x38')),'type':_0x1c2d('0x39'),'output':_0x4bff20[_0x1c2d('0x3a')],'name':_0x4bff20[_0x1c2d('0x18')]};if(!_[_0x1c2d('0x35')](_0x4bff20['DefaultReportId'])){logger['info'](_0x1c2d('0x3b'),_0x4bff20[_0x1c2d('0x3c')]);return analyticDefaultReportController[_0x1c2d('0x3d')]({'id':_0x4bff20[_0x1c2d('0x3c')]},_0x22fef7)[_0x1c2d('0x2d')](handleResult(_0x4bff20))[_0x1c2d('0x30')](handleError());}if(!_[_0x1c2d('0x35')](_0x4bff20['CustomReportId'])){logger['info']('exec\x20custom\x20report\x20id:%s',_0x4bff20[_0x1c2d('0x3e')]);return analyticCustomReportController[_0x1c2d('0x3d')]({'id':_0x4bff20['CustomReportId']},_0x22fef7)[_0x1c2d('0x2d')](handleResult(_0x4bff20))['catch'](handleError());}}catch(_0x1fcff6){logger['error'](JSON[_0x1c2d('0x27')](_0x1fcff6));}return logger[_0x1c2d('0xa')](_0x1c2d('0x3f'));};}function getJobs(_0x32211c){var _0x2990c8={};if(_0x32211c){_0x2990c8['id']=_0x32211c;}return db[_0x1c2d('0x40')]['findAll']({'where':_0x2990c8,'include':[{'model':db['MailAccount'],'attributes':['id','name','email'],'include':[{'model':db['MailServerOut'],'as':_0x1c2d('0xe')}]}]})[_0x1c2d('0x2d')](function(_0x4f64a4){var _0x5945e1=_[_0x1c2d('0x41')](manager[_0x1c2d('0x42')]);var _0x1884e0=_[_0x1c2d('0x43')](_0x4f64a4,function(_0x2d219a){return _0x2d219a['id']['toString']();});var _0x13a52b=_['keyBy'](_0x4f64a4,function(_0x2fb5b2){return _0x2fb5b2['id']['toString']();});var _0xe75007=_0x32211c?_0x1884e0:_[_0x1c2d('0x44')](_0x1884e0,_0x5945e1);var _0x14f216=_[_0x1c2d('0x45')](_0x1884e0,_0x5945e1);var _0x2f0365=_[_0x1c2d('0x44')](_0x5945e1,_0x1884e0);var _0x515d10;var _0x3e2772;for(_0x515d10=0x0;_0x515d10<_0x2f0365[_0x1c2d('0x46')]&&!_0x32211c;_0x515d10+=0x1){_0x3e2772=_0x2f0365[_0x515d10][_0x1c2d('0x47')]();if(manager[_0x1c2d('0x48')](_0x3e2772)){manager[_0x1c2d('0x49')](_0x3e2772);manager[_0x1c2d('0x4a')](_0x3e2772);logger[_0x1c2d('0xa')](_0x1c2d('0x4b'),_0x3e2772);}}logger[_0x1c2d('0xa')](_0x1c2d('0x4c'),JSON[_0x1c2d('0x27')](_0xe75007));for(_0x515d10=0x0;_0x515d10<_0xe75007['length'];_0x515d10+=0x1){_0x3e2772=_0xe75007[_0x515d10]['toString']();logger[_0x1c2d('0xa')](_0x1c2d('0x4d'),_0x3e2772);if(_0x32211c){logger[_0x1c2d('0xa')](_0x1c2d('0x4e'),_0x32211c);logger[_0x1c2d('0xa')](JSON[_0x1c2d('0x27')](_0x13a52b[_0x3e2772]));BPromise[_0x1c2d('0x4f')]()[_0x1c2d('0x2d')](handleJob(_0x13a52b[_0x3e2772]));logger['info']('run\x20job',_0x13a52b[_0x3e2772]['name'],_0x13a52b[_0x3e2772][_0x1c2d('0x50')]);}else if(_0x13a52b[_0x3e2772][_0x1c2d('0x50')]&&_0x13a52b[_0x3e2772][_0x1c2d('0x51')]&&moment()[_0x1c2d('0x52')](_0x13a52b[_0x3e2772]['startAt'],_0x13a52b[_0x3e2772][_0x1c2d('0x53')])){manager[_0x1c2d('0x54')](_0x3e2772,_0x13a52b[_0x3e2772][_0x1c2d('0x50')],handleJob(_0x13a52b[_0x3e2772]));manager[_0x1c2d('0x55')](_0x3e2772);logger[_0x1c2d('0xa')](_0x1c2d('0x56'),_0x13a52b[_0x3e2772][_0x1c2d('0x18')],_0x13a52b[_0x3e2772][_0x1c2d('0x50')]);}else if(manager[_0x1c2d('0x48')](_0x3e2772)){manager['stop'](_0x3e2772);manager[_0x1c2d('0x4a')](_0x3e2772);logger[_0x1c2d('0xa')](_0x1c2d('0x57'),_0x13a52b[_0x3e2772][_0x1c2d('0x18')],_0x13a52b[_0x3e2772]['cron']);}}for(_0x515d10=0x0,_0x3e2772;_0x515d10<_0x14f216[_0x1c2d('0x46')]&&!_0x32211c;_0x515d10+=0x1){_0x3e2772=_0x14f216[_0x515d10][_0x1c2d('0x47')]();if(manager[_0x1c2d('0x48')](_0x3e2772)){if(_0x13a52b[_0x3e2772]['cron']&&_0x13a52b[_0x3e2772][_0x1c2d('0x51')]&&moment()[_0x1c2d('0x52')](_0x13a52b[_0x3e2772][_0x1c2d('0x58')],_0x13a52b[_0x3e2772][_0x1c2d('0x53')])){manager['update'](_0x3e2772,_0x13a52b[_0x3e2772]['cron'],handleJob(_0x13a52b[_0x3e2772]));logger[_0x1c2d('0xa')]('update\x20cron',_0x13a52b[_0x3e2772][_0x1c2d('0x18')],_0x13a52b[_0x3e2772][_0x1c2d('0x50')]);}else{manager[_0x1c2d('0x49')](_0x3e2772);manager[_0x1c2d('0x4a')](_0x3e2772);logger[_0x1c2d('0xa')](_0x1c2d('0x57'),_0x13a52b[_0x3e2772][_0x1c2d('0x18')],_0x13a52b[_0x3e2772][_0x1c2d('0x50')]);}}}})[_0x1c2d('0x30')](function(_0xa8afd3){logger['error'](JSON['stringify'](_0xa8afd3));});}exports[_0x1c2d('0x59')]=function(_0x48a819){return getJobs(_0x48a819);};exports[_0x1c2d('0x55')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};