Built motion from commit (unavailable).|2.5.10
[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 _0xf535=['index','resolve','cron','active','isBetween','startAt','add','start','add\x20cron','endAt','update','update\x20cron','stop\x20cron','run','util','path','lodash','moment','cron-job-manager','jayson/promise','bluebird','../logger','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','info','MailAccount','service','Smtp','host','port','secure','authentication','auth','pass','format','\x22%s\x22\x20<%s>','name','email','user','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','zip','status','message','attachments','text','existsSync','Sent','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','request','SendMail','error','error\x20mail','stringify','email\x20sent','catch','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','then','CustomReportId','exec\x20custom\x20report\x20id:%s','Schedule','keys','jobs','map','toString','keyBy','difference','intersection','length','exists','stop','deleteJob','delete\x20cron','toRun'];(function(_0x31ceb6,_0xa29260){var _0x465000=function(_0x3b496d){while(--_0x3b496d){_0x31ceb6['push'](_0x31ceb6['shift']());}};_0x465000(++_0xa29260);}(_0xf535,0x6b));var _0x5f53=function(_0x432723,_0x31e971){_0x432723=_0x432723-0x0;var _0x4f4991=_0xf535[_0x432723];return _0x4f4991;};'use strict';var fs=require('fs');var util=require(_0x5f53('0x0'));var path=require(_0x5f53('0x1'));var _=require(_0x5f53('0x2'));var moment=require(_0x5f53('0x3'));var CronJobManager=require(_0x5f53('0x4'));var jayson=require(_0x5f53('0x5'));var BPromise=require(_0x5f53('0x6'));var logger=require(_0x5f53('0x7'))('schedule');var db=require(_0x5f53('0x8'))['db'];var analyticCustomReportController=require(_0x5f53('0x9'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x5f53('0xa')][_0x5f53('0xb')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x15546b,_0x481172){return function(){logger[_0x5f53('0xc')]('Try\x20to\x20send\x20a\x20mail\x20to',_0x15546b['email']);var _0x29bd07=!![];var _0x325bdf={'tls':{'rejectUnauthorized':![]}};if(_0x15546b[_0x5f53('0xd')]['Smtp'][_0x5f53('0xe')]){_0x325bdf[_0x5f53('0xe')]=_0x15546b[_0x5f53('0xd')][_0x5f53('0xf')][_0x5f53('0xe')];}else{_0x325bdf[_0x5f53('0x10')]=_0x15546b[_0x5f53('0xd')][_0x5f53('0xf')][_0x5f53('0x10')];_0x325bdf[_0x5f53('0x11')]=_0x15546b[_0x5f53('0xd')][_0x5f53('0xf')][_0x5f53('0x11')];_0x325bdf[_0x5f53('0x12')]=_0x15546b[_0x5f53('0xd')]['Smtp'][_0x5f53('0x12')];}if(_0x15546b[_0x5f53('0xd')]['Smtp'][_0x5f53('0x13')]){_0x325bdf[_0x5f53('0x14')]={'user':_0x15546b[_0x5f53('0xd')][_0x5f53('0xf')]['user'],'pass':_0x15546b['MailAccount'][_0x5f53('0xf')][_0x5f53('0x15')]};}var _0x5c9f5c={'account':_0x325bdf,'message':{'from':util[_0x5f53('0x16')](_0x5f53('0x17'),_0x15546b[_0x5f53('0xd')][_0x5f53('0x18')],_0x15546b[_0x5f53('0xd')][_0x5f53('0x19')]||_0x15546b[_0x5f53('0xd')][_0x5f53('0xf')][_0x5f53('0x1a')]),'to':_0x15546b[_0x5f53('0x19')],'cc':_0x15546b['cc'],'bcc':_0x15546b[_0x5f53('0x1b')],'subject':util['format'](_0x5f53('0x1c'),_0x481172[_0x5f53('0x18')],_0x15546b[_0x5f53('0x1d')],_0x15546b[_0x5f53('0x1e')])}};var _0x15d28f=path[_0x5f53('0x1f')](__dirname,_0x5f53('0x20'));var _0x472a72=_0x481172[_0x5f53('0x21')];var _0xcf334=util[_0x5f53('0x16')](_0x5f53('0x22'),path[_0x5f53('0x23')](_0x481172[_0x5f53('0x21')],path['extname'](_0x481172[_0x5f53('0x21')])),_0x5f53('0x24'));var _0x5e9321=path['join'](_0x15d28f,_0x472a72);var _0x42ae85=path[_0x5f53('0x1f')](_0x15d28f,_0xcf334);if(fs['existsSync'](_0x5e9321)){_0x481172[_0x5f53('0x25')]='Sent';_0x5c9f5c[_0x5f53('0x26')][_0x5f53('0x27')]=[{'filename':_0x472a72,'path':_0x5e9321}];_0x5c9f5c[_0x5f53('0x26')][_0x5f53('0x28')]=util[_0x5f53('0x16')]('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON['stringify'](_0x481172,null,0x2));}else if(fs[_0x5f53('0x29')](_0x42ae85)){_0x481172[_0x5f53('0x25')]=_0x5f53('0x2a');_0x5c9f5c['message']['attachments']=[{'filename':_0xcf334,'path':_0x42ae85}];}else{_0x5c9f5c[_0x5f53('0x26')]['text']=_0x5f53('0x2b');if(!_0x15546b['sendIfEmpty']){_0x29bd07=![];logger[_0x5f53('0xc')]('empty\x20file,\x20email\x20not\x20sent');}}if(_0x29bd07){return client[_0x5f53('0x2c')](_0x5f53('0x2d'),_0x5c9f5c)['then'](function(_0x5ba95e){if(_0x5ba95e['error']){return logger[_0x5f53('0x2e')](_0x5f53('0x2f'),JSON[_0x5f53('0x30')](_0x5ba95e));}return logger[_0x5f53('0xc')](_0x5f53('0x31'));})[_0x5f53('0x32')](function(_0x54fef7){return logger[_0x5f53('0x2e')]('error\x20mail',JSON['stringify'](_0x54fef7));});}};}function handleError(){return function(_0x4c407d){return logger[_0x5f53('0x2e')](JSON['stringify'](_0x4c407d));};}function handleResult(_0xa9c087){return function(_0x3b25bd){logger[_0x5f53('0xc')](_0x5f53('0x33'),JSON[_0x5f53('0x30')](_0x3b25bd));if(_0xa9c087[_0x5f53('0xd')]&&_0xa9c087['MailAccount']['Smtp']&&!_[_0x5f53('0x34')](_0xa9c087[_0x5f53('0x19')])){setTimeout(handleSendEmail(_0xa9c087,_0x3b25bd),0x3c*0x3e8);}};}function handleJob(_0x4bbab2){return function(){try{if(_['isNil'](_0x4bbab2[_0x5f53('0x1d')])){return logger[_0x5f53('0xc')](_0x5f53('0x35'));}if(_['isNil'](_0x4bbab2[_0x5f53('0x1e')])){return logger[_0x5f53('0xc')](_0x5f53('0x36'));}var _0xb9ef9b={'startDate':moment()[_0x5f53('0x37')](_0x4bbab2['subtractNumber'],_0x4bbab2[_0x5f53('0x1e')])[_0x5f53('0x16')](_0x5f53('0x38')),'endDate':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'type':_0x5f53('0x39'),'output':_0x4bbab2[_0x5f53('0x3a')],'name':_0x4bbab2[_0x5f53('0x18')]};if(!_[_0x5f53('0x34')](_0x4bbab2[_0x5f53('0x3b')])){logger[_0x5f53('0xc')](_0x5f53('0x3c'),_0x4bbab2[_0x5f53('0x3b')]);return analyticDefaultReportController[_0x5f53('0x3d')]({'id':_0x4bbab2[_0x5f53('0x3b')]},_0xb9ef9b)[_0x5f53('0x3e')](handleResult(_0x4bbab2))['catch'](handleError());}if(!_[_0x5f53('0x34')](_0x4bbab2[_0x5f53('0x3f')])){logger['info'](_0x5f53('0x40'),_0x4bbab2['CustomReportId']);return analyticCustomReportController[_0x5f53('0x3d')]({'id':_0x4bbab2[_0x5f53('0x3f')]},_0xb9ef9b)[_0x5f53('0x3e')](handleResult(_0x4bbab2))[_0x5f53('0x32')](handleError());}}catch(_0x5c794d){logger['error'](JSON[_0x5f53('0x30')](_0x5c794d));}return logger[_0x5f53('0xc')]('no\x20report\x20id');};}function getJobs(_0xb7119a){var _0x4128ea={};if(_0xb7119a){_0x4128ea['id']=_0xb7119a;}return db[_0x5f53('0x41')]['findAll']({'where':_0x4128ea,'include':[{'model':db[_0x5f53('0xd')],'attributes':['id',_0x5f53('0x18'),_0x5f53('0x19')],'include':[{'model':db['MailServerOut'],'as':'Smtp'}]}]})[_0x5f53('0x3e')](function(_0x5ab74a){var _0x372379=_[_0x5f53('0x42')](manager[_0x5f53('0x43')]);var _0x392824=_[_0x5f53('0x44')](_0x5ab74a,function(_0x55fd96){return _0x55fd96['id'][_0x5f53('0x45')]();});var _0x2041b0=_[_0x5f53('0x46')](_0x5ab74a,function(_0xc7137){return _0xc7137['id'][_0x5f53('0x45')]();});var _0x3c6f93=_0xb7119a?_0x392824:_[_0x5f53('0x47')](_0x392824,_0x372379);var _0x38c82b=_[_0x5f53('0x48')](_0x392824,_0x372379);var _0x110211=_[_0x5f53('0x47')](_0x372379,_0x392824);var _0xd4b7ca;var _0x256d69;for(_0xd4b7ca=0x0;_0xd4b7ca<_0x110211[_0x5f53('0x49')]&&!_0xb7119a;_0xd4b7ca+=0x1){_0x256d69=_0x110211[_0xd4b7ca]['toString']();if(manager[_0x5f53('0x4a')](_0x256d69)){manager[_0x5f53('0x4b')](_0x256d69);manager[_0x5f53('0x4c')](_0x256d69);logger[_0x5f53('0xc')](_0x5f53('0x4d'),_0x256d69);}}logger[_0x5f53('0xc')](_0x5f53('0x4e'),JSON['stringify'](_0x3c6f93));for(_0xd4b7ca=0x0;_0xd4b7ca<_0x3c6f93[_0x5f53('0x49')];_0xd4b7ca+=0x1){_0x256d69=_0x3c6f93[_0xd4b7ca][_0x5f53('0x45')]();logger[_0x5f53('0xc')](_0x5f53('0x4f'),_0x256d69);if(_0xb7119a){logger[_0x5f53('0xc')]('my\x20id',_0xb7119a);logger['info'](JSON[_0x5f53('0x30')](_0x2041b0[_0x256d69]));BPromise[_0x5f53('0x50')]()[_0x5f53('0x3e')](handleJob(_0x2041b0[_0x256d69]));logger[_0x5f53('0xc')]('run\x20job',_0x2041b0[_0x256d69][_0x5f53('0x18')],_0x2041b0[_0x256d69]['cron']);}else if(_0x2041b0[_0x256d69][_0x5f53('0x51')]&&_0x2041b0[_0x256d69][_0x5f53('0x52')]&&moment()[_0x5f53('0x53')](_0x2041b0[_0x256d69][_0x5f53('0x54')],_0x2041b0[_0x256d69]['endAt'])){manager[_0x5f53('0x55')](_0x256d69,_0x2041b0[_0x256d69][_0x5f53('0x51')],handleJob(_0x2041b0[_0x256d69]));manager[_0x5f53('0x56')](_0x256d69);logger['info'](_0x5f53('0x57'),_0x2041b0[_0x256d69][_0x5f53('0x18')],_0x2041b0[_0x256d69][_0x5f53('0x51')]);}else if(manager[_0x5f53('0x4a')](_0x256d69)){manager[_0x5f53('0x4b')](_0x256d69);manager[_0x5f53('0x4c')](_0x256d69);logger['info']('stop\x20cron',_0x2041b0[_0x256d69]['name'],_0x2041b0[_0x256d69]['cron']);}}for(_0xd4b7ca=0x0,_0x256d69;_0xd4b7ca<_0x38c82b[_0x5f53('0x49')]&&!_0xb7119a;_0xd4b7ca+=0x1){_0x256d69=_0x38c82b[_0xd4b7ca][_0x5f53('0x45')]();if(manager[_0x5f53('0x4a')](_0x256d69)){if(_0x2041b0[_0x256d69][_0x5f53('0x51')]&&_0x2041b0[_0x256d69][_0x5f53('0x52')]&&moment()[_0x5f53('0x53')](_0x2041b0[_0x256d69][_0x5f53('0x54')],_0x2041b0[_0x256d69][_0x5f53('0x58')])){manager[_0x5f53('0x59')](_0x256d69,_0x2041b0[_0x256d69][_0x5f53('0x51')],handleJob(_0x2041b0[_0x256d69]));logger[_0x5f53('0xc')](_0x5f53('0x5a'),_0x2041b0[_0x256d69][_0x5f53('0x18')],_0x2041b0[_0x256d69]['cron']);}else{manager['stop'](_0x256d69);manager[_0x5f53('0x4c')](_0x256d69);logger[_0x5f53('0xc')](_0x5f53('0x5b'),_0x2041b0[_0x256d69][_0x5f53('0x18')],_0x2041b0[_0x256d69][_0x5f53('0x51')]);}}}})[_0x5f53('0x32')](function(_0xf5222b){logger['error'](JSON['stringify'](_0xf5222b));});}exports[_0x5f53('0x5c')]=function(_0x2858cf){return getJobs(_0x2858cf);};exports[_0x5f53('0x56')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};