Built motion from commit (unavailable).|2.5.31
[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 _0x32ab=['existsSync','status','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','request','SendMail','then','error\x20mail','email\x20sent','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','exec\x20defaul\x20report\x20id:%s','DefaultReportId','runReport','catch','CustomReportId','exec\x20custom\x20report\x20id:%s','error','no\x20report\x20id','Schedule','findAll','MailServerOut','jobs','toString','difference','length','exists','stop','deleteJob','delete\x20cron','toRun','index','cron','active','isBetween','endAt','add','start','add\x20cron','stop\x20cron','startAt','update','util','lodash','moment','cron-job-manager','bluebird','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','info','Try\x20to\x20send\x20a\x20mail\x20to','MailAccount','Smtp','service','host','port','secure','authentication','auth','user','\x22%s\x22\x20<%s>','name','email','bcc','format','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','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'];(function(_0x32abd2,_0x4dfd2e){var _0x22d4d2=function(_0x373956){while(--_0x373956){_0x32abd2['push'](_0x32abd2['shift']());}};_0x22d4d2(++_0x4dfd2e);}(_0x32ab,0xdd));var _0xb32a=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0x32ab[_0x8c43de];return _0xa6591b;};'use strict';var fs=require('fs');var util=require(_0xb32a('0x0'));var path=require('path');var _=require(_0xb32a('0x1'));var moment=require(_0xb32a('0x2'));var CronJobManager=require(_0xb32a('0x3'));var jayson=require('jayson/promise');var BPromise=require(_0xb32a('0x4'));var logger=require('../logger')(_0xb32a('0x5'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0xb32a('0x6'));var analyticDefaultReportController=require(_0xb32a('0x7'));var client=jayson[_0xb32a('0x8')]['http']({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x548b22,_0x3b9d02){return function(){logger[_0xb32a('0x9')](_0xb32a('0xa'),_0x548b22['email']);var _0x154c6a=!![];var _0x556b10={'tls':{'rejectUnauthorized':![]}};if(_0x548b22[_0xb32a('0xb')][_0xb32a('0xc')]['service']){_0x556b10[_0xb32a('0xd')]=_0x548b22[_0xb32a('0xb')][_0xb32a('0xc')][_0xb32a('0xd')];}else{_0x556b10['host']=_0x548b22['MailAccount'][_0xb32a('0xc')][_0xb32a('0xe')];_0x556b10[_0xb32a('0xf')]=_0x548b22[_0xb32a('0xb')][_0xb32a('0xc')][_0xb32a('0xf')];_0x556b10[_0xb32a('0x10')]=_0x548b22[_0xb32a('0xb')][_0xb32a('0xc')][_0xb32a('0x10')];}if(_0x548b22[_0xb32a('0xb')]['Smtp'][_0xb32a('0x11')]){_0x556b10[_0xb32a('0x12')]={'user':_0x548b22[_0xb32a('0xb')][_0xb32a('0xc')][_0xb32a('0x13')],'pass':_0x548b22[_0xb32a('0xb')][_0xb32a('0xc')]['pass']};}var _0x288873={'account':_0x556b10,'message':{'from':util['format'](_0xb32a('0x14'),_0x548b22['MailAccount'][_0xb32a('0x15')],_0x548b22[_0xb32a('0xb')][_0xb32a('0x16')]||_0x548b22[_0xb32a('0xb')][_0xb32a('0xc')][_0xb32a('0x13')]),'to':_0x548b22[_0xb32a('0x16')],'cc':_0x548b22['cc'],'bcc':_0x548b22[_0xb32a('0x17')],'subject':util[_0xb32a('0x18')](_0xb32a('0x19'),_0x3b9d02[_0xb32a('0x15')],_0x548b22[_0xb32a('0x1a')],_0x548b22[_0xb32a('0x1b')])}};var _0x4921c1=path[_0xb32a('0x1c')](__dirname,_0xb32a('0x1d'));var _0x513ec5=_0x3b9d02[_0xb32a('0x1e')];var _0x2089b3=util['format'](_0xb32a('0x1f'),path[_0xb32a('0x20')](_0x3b9d02[_0xb32a('0x1e')],path[_0xb32a('0x21')](_0x3b9d02['savename'])),_0xb32a('0x22'));var _0x1757ac=path[_0xb32a('0x1c')](_0x4921c1,_0x513ec5);var _0x25b995=path[_0xb32a('0x1c')](_0x4921c1,_0x2089b3);if(fs['existsSync'](_0x1757ac)){_0x3b9d02['status']='Sent';_0x288873[_0xb32a('0x23')][_0xb32a('0x24')]=[{'filename':_0x513ec5,'path':_0x1757ac}];_0x288873['message'][_0xb32a('0x25')]=util[_0xb32a('0x18')](_0xb32a('0x26'),JSON[_0xb32a('0x27')](_0x3b9d02,null,0x2));}else if(fs[_0xb32a('0x28')](_0x25b995)){_0x3b9d02[_0xb32a('0x29')]='Sent';_0x288873['message'][_0xb32a('0x24')]=[{'filename':_0x2089b3,'path':_0x25b995}];}else{_0x288873[_0xb32a('0x23')][_0xb32a('0x25')]=_0xb32a('0x2a');if(!_0x548b22['sendIfEmpty']){_0x154c6a=![];logger[_0xb32a('0x9')]('empty\x20file,\x20email\x20not\x20sent');}}if(_0x154c6a){return client[_0xb32a('0x2b')](_0xb32a('0x2c'),_0x288873)[_0xb32a('0x2d')](function(_0x29e3ee){if(_0x29e3ee['error']){return logger['error'](_0xb32a('0x2e'),JSON[_0xb32a('0x27')](_0x29e3ee));}return logger[_0xb32a('0x9')](_0xb32a('0x2f'));})['catch'](function(_0x28b8a4){return logger['error'](_0xb32a('0x2e'),JSON[_0xb32a('0x27')](_0x28b8a4));});}};}function handleError(){return function(_0x2f9f76){return logger['error'](JSON[_0xb32a('0x27')](_0x2f9f76));};}function handleResult(_0x35c181){return function(_0x4182ae){logger['info'](_0xb32a('0x30'),JSON['stringify'](_0x4182ae));if(_0x35c181[_0xb32a('0xb')]&&_0x35c181[_0xb32a('0xb')]['Smtp']&&!_[_0xb32a('0x31')](_0x35c181[_0xb32a('0x16')])){setTimeout(handleSendEmail(_0x35c181,_0x4182ae),0x3c*0x3e8);}};}function handleJob(_0x4678a9){return function(){try{if(_[_0xb32a('0x31')](_0x4678a9[_0xb32a('0x1a')])){return logger[_0xb32a('0x9')](_0xb32a('0x32'));}if(_[_0xb32a('0x31')](_0x4678a9[_0xb32a('0x1b')])){return logger['info'](_0xb32a('0x33'));}var _0x29ee44={'startDate':moment()[_0xb32a('0x34')](_0x4678a9[_0xb32a('0x1a')],_0x4678a9[_0xb32a('0x1b')])[_0xb32a('0x18')](_0xb32a('0x35')),'endDate':moment()[_0xb32a('0x18')]('YYYY-MM-DD\x20HH:mm:ss'),'type':_0xb32a('0x36'),'output':_0x4678a9[_0xb32a('0x37')],'name':_0x4678a9[_0xb32a('0x15')]};if(!_[_0xb32a('0x31')](_0x4678a9['DefaultReportId'])){logger['info'](_0xb32a('0x38'),_0x4678a9[_0xb32a('0x39')]);return analyticDefaultReportController[_0xb32a('0x3a')]({'id':_0x4678a9[_0xb32a('0x39')]},_0x29ee44)[_0xb32a('0x2d')](handleResult(_0x4678a9))[_0xb32a('0x3b')](handleError());}if(!_[_0xb32a('0x31')](_0x4678a9[_0xb32a('0x3c')])){logger[_0xb32a('0x9')](_0xb32a('0x3d'),_0x4678a9[_0xb32a('0x3c')]);return analyticCustomReportController[_0xb32a('0x3a')]({'id':_0x4678a9['CustomReportId']},_0x29ee44)['then'](handleResult(_0x4678a9))[_0xb32a('0x3b')](handleError());}}catch(_0x216ed5){logger[_0xb32a('0x3e')](JSON[_0xb32a('0x27')](_0x216ed5));}return logger[_0xb32a('0x9')](_0xb32a('0x3f'));};}function getJobs(_0x478aa9){var _0x1f9e24={};if(_0x478aa9){_0x1f9e24['id']=_0x478aa9;}return db[_0xb32a('0x40')][_0xb32a('0x41')]({'where':_0x1f9e24,'include':[{'model':db[_0xb32a('0xb')],'attributes':['id',_0xb32a('0x15'),_0xb32a('0x16')],'include':[{'model':db[_0xb32a('0x42')],'as':_0xb32a('0xc')}]}]})[_0xb32a('0x2d')](function(_0x389908){var _0x5b6f08=_['keys'](manager[_0xb32a('0x43')]);var _0x440de1=_['map'](_0x389908,function(_0x45128f){return _0x45128f['id'][_0xb32a('0x44')]();});var _0x81f01f=_['keyBy'](_0x389908,function(_0xc69a88){return _0xc69a88['id']['toString']();});var _0x112df3=_0x478aa9?_0x440de1:_['difference'](_0x440de1,_0x5b6f08);var _0x562381=_['intersection'](_0x440de1,_0x5b6f08);var _0xb6d186=_[_0xb32a('0x45')](_0x5b6f08,_0x440de1);var _0x3a85aa;var _0x183bf2;for(_0x3a85aa=0x0;_0x3a85aa<_0xb6d186[_0xb32a('0x46')]&&!_0x478aa9;_0x3a85aa+=0x1){_0x183bf2=_0xb6d186[_0x3a85aa][_0xb32a('0x44')]();if(manager[_0xb32a('0x47')](_0x183bf2)){manager[_0xb32a('0x48')](_0x183bf2);manager[_0xb32a('0x49')](_0x183bf2);logger[_0xb32a('0x9')](_0xb32a('0x4a'),_0x183bf2);}}logger[_0xb32a('0x9')](_0xb32a('0x4b'),JSON[_0xb32a('0x27')](_0x112df3));for(_0x3a85aa=0x0;_0x3a85aa<_0x112df3['length'];_0x3a85aa+=0x1){_0x183bf2=_0x112df3[_0x3a85aa][_0xb32a('0x44')]();logger[_0xb32a('0x9')](_0xb32a('0x4c'),_0x183bf2);if(_0x478aa9){logger[_0xb32a('0x9')]('my\x20id',_0x478aa9);logger[_0xb32a('0x9')](JSON[_0xb32a('0x27')](_0x81f01f[_0x183bf2]));BPromise['resolve']()[_0xb32a('0x2d')](handleJob(_0x81f01f[_0x183bf2]));logger[_0xb32a('0x9')]('run\x20job',_0x81f01f[_0x183bf2][_0xb32a('0x15')],_0x81f01f[_0x183bf2][_0xb32a('0x4d')]);}else if(_0x81f01f[_0x183bf2][_0xb32a('0x4d')]&&_0x81f01f[_0x183bf2][_0xb32a('0x4e')]&&moment()[_0xb32a('0x4f')](_0x81f01f[_0x183bf2]['startAt'],_0x81f01f[_0x183bf2][_0xb32a('0x50')])){manager[_0xb32a('0x51')](_0x183bf2,_0x81f01f[_0x183bf2][_0xb32a('0x4d')],handleJob(_0x81f01f[_0x183bf2]));manager[_0xb32a('0x52')](_0x183bf2);logger[_0xb32a('0x9')](_0xb32a('0x53'),_0x81f01f[_0x183bf2][_0xb32a('0x15')],_0x81f01f[_0x183bf2][_0xb32a('0x4d')]);}else if(manager['exists'](_0x183bf2)){manager[_0xb32a('0x48')](_0x183bf2);manager[_0xb32a('0x49')](_0x183bf2);logger[_0xb32a('0x9')](_0xb32a('0x54'),_0x81f01f[_0x183bf2][_0xb32a('0x15')],_0x81f01f[_0x183bf2][_0xb32a('0x4d')]);}}for(_0x3a85aa=0x0,_0x183bf2;_0x3a85aa<_0x562381['length']&&!_0x478aa9;_0x3a85aa+=0x1){_0x183bf2=_0x562381[_0x3a85aa][_0xb32a('0x44')]();if(manager[_0xb32a('0x47')](_0x183bf2)){if(_0x81f01f[_0x183bf2]['cron']&&_0x81f01f[_0x183bf2][_0xb32a('0x4e')]&&moment()['isBetween'](_0x81f01f[_0x183bf2][_0xb32a('0x55')],_0x81f01f[_0x183bf2][_0xb32a('0x50')])){manager[_0xb32a('0x56')](_0x183bf2,_0x81f01f[_0x183bf2][_0xb32a('0x4d')],handleJob(_0x81f01f[_0x183bf2]));logger[_0xb32a('0x9')]('update\x20cron',_0x81f01f[_0x183bf2][_0xb32a('0x15')],_0x81f01f[_0x183bf2][_0xb32a('0x4d')]);}else{manager[_0xb32a('0x48')](_0x183bf2);manager[_0xb32a('0x49')](_0x183bf2);logger[_0xb32a('0x9')](_0xb32a('0x54'),_0x81f01f[_0x183bf2][_0xb32a('0x15')],_0x81f01f[_0x183bf2][_0xb32a('0x4d')]);}}}})[_0xb32a('0x3b')](function(_0x3545cb){logger[_0xb32a('0x3e')](JSON[_0xb32a('0x27')](_0x3545cb));});}exports['run']=function(_0x5dddff){return getJobs(_0x5dddff);};exports[_0xb32a('0x52')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};