Built motion from commit (unavailable).|2.5.3
[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 _0x46e1=['intersection','length','exists','deleteJob','delete\x20cron','toRun','index','run\x20job','cron','active','isBetween','startAt','endAt','add\x20cron','stop','stop\x20cron','update','update\x20cron','run','start','util','lodash','moment','cron-job-manager','jayson/promise','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','http','Try\x20to\x20send\x20a\x20mail\x20to','email','service','MailAccount','Smtp','host','port','secure','authentication','auth','pass','\x22%s\x22\x20<%s>','name','user','bcc','format','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','savename','%s.%s','extname','zip','existsSync','status','attachments','message','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','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','info','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','error\x20mail','email\x20sent','catch','data','subtractNumber\x20null\x20or\x20undefined','isNil','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','findAll','MailServerOut','keys','jobs','toString','keyBy','difference'];(function(_0x1bc986,_0x37dcea){var _0x13ddf9=function(_0x3eccc0){while(--_0x3eccc0){_0x1bc986['push'](_0x1bc986['shift']());}};_0x13ddf9(++_0x37dcea);}(_0x46e1,0x12e));var _0x146e=function(_0x1f9b53,_0x494f72){_0x1f9b53=_0x1f9b53-0x0;var _0xbd67b0=_0x46e1[_0x1f9b53];return _0xbd67b0;};'use strict';var fs=require('fs');var util=require(_0x146e('0x0'));var path=require('path');var _=require(_0x146e('0x1'));var moment=require(_0x146e('0x2'));var CronJobManager=require(_0x146e('0x3'));var jayson=require(_0x146e('0x4'));var BPromise=require('bluebird');var logger=require(_0x146e('0x5'))(_0x146e('0x6'));var db=require(_0x146e('0x7'))['db'];var analyticCustomReportController=require(_0x146e('0x8'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson['client'][_0x146e('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x567217,_0x28cc77){return function(){logger['info'](_0x146e('0xa'),_0x567217[_0x146e('0xb')]);var _0x55ba3b=!![];var _0x30385e={'tls':{'rejectUnauthorized':![]}};if(_0x567217['MailAccount']['Smtp'][_0x146e('0xc')]){_0x30385e[_0x146e('0xc')]=_0x567217[_0x146e('0xd')][_0x146e('0xe')][_0x146e('0xc')];}else{_0x30385e['host']=_0x567217[_0x146e('0xd')][_0x146e('0xe')][_0x146e('0xf')];_0x30385e[_0x146e('0x10')]=_0x567217[_0x146e('0xd')][_0x146e('0xe')][_0x146e('0x10')];_0x30385e[_0x146e('0x11')]=_0x567217[_0x146e('0xd')][_0x146e('0xe')][_0x146e('0x11')];}if(_0x567217['MailAccount']['Smtp'][_0x146e('0x12')]){_0x30385e[_0x146e('0x13')]={'user':_0x567217[_0x146e('0xd')]['Smtp']['user'],'pass':_0x567217['MailAccount'][_0x146e('0xe')][_0x146e('0x14')]};}var _0x791f14={'account':_0x30385e,'message':{'from':util['format'](_0x146e('0x15'),_0x567217['MailAccount'][_0x146e('0x16')],_0x567217[_0x146e('0xd')][_0x146e('0xb')]||_0x567217[_0x146e('0xd')][_0x146e('0xe')][_0x146e('0x17')]),'to':_0x567217[_0x146e('0xb')],'cc':_0x567217['cc'],'bcc':_0x567217[_0x146e('0x18')],'subject':util[_0x146e('0x19')](_0x146e('0x1a'),_0x28cc77[_0x146e('0x16')],_0x567217[_0x146e('0x1b')],_0x567217[_0x146e('0x1c')])}};var _0x324ded=path[_0x146e('0x1d')](__dirname,'../../files/reports');var _0x1b6465=_0x28cc77[_0x146e('0x1e')];var _0x26dcb3=util[_0x146e('0x19')](_0x146e('0x1f'),path['basename'](_0x28cc77['savename'],path[_0x146e('0x20')](_0x28cc77[_0x146e('0x1e')])),_0x146e('0x21'));var _0x5f334d=path['join'](_0x324ded,_0x1b6465);var _0x4c9801=path[_0x146e('0x1d')](_0x324ded,_0x26dcb3);if(fs[_0x146e('0x22')](_0x5f334d)){_0x28cc77[_0x146e('0x23')]='Sent';_0x791f14['message'][_0x146e('0x24')]=[{'filename':_0x1b6465,'path':_0x5f334d}];_0x791f14[_0x146e('0x25')][_0x146e('0x26')]=util[_0x146e('0x19')](_0x146e('0x27'),JSON[_0x146e('0x28')](_0x28cc77,null,0x2));}else if(fs[_0x146e('0x22')](_0x4c9801)){_0x28cc77[_0x146e('0x23')]='Sent';_0x791f14['message'][_0x146e('0x24')]=[{'filename':_0x26dcb3,'path':_0x4c9801}];}else{_0x791f14['message'][_0x146e('0x26')]=_0x146e('0x29');if(!_0x567217[_0x146e('0x2a')]){_0x55ba3b=![];logger[_0x146e('0x2b')](_0x146e('0x2c'));}}if(_0x55ba3b){return client[_0x146e('0x2d')](_0x146e('0x2e'),_0x791f14)[_0x146e('0x2f')](function(_0x346e48){if(_0x346e48[_0x146e('0x30')]){return logger[_0x146e('0x30')](_0x146e('0x31'),JSON[_0x146e('0x28')](_0x346e48));}return logger[_0x146e('0x2b')](_0x146e('0x32'));})[_0x146e('0x33')](function(_0x4651f7){return logger[_0x146e('0x30')](_0x146e('0x31'),JSON[_0x146e('0x28')](_0x4651f7));});}};}function handleError(){return function(_0x55ce2d){return logger[_0x146e('0x30')](JSON[_0x146e('0x28')](_0x55ce2d));};}function handleResult(_0x258771){return function(_0x9e06fb){logger['info'](_0x146e('0x34'),JSON[_0x146e('0x28')](_0x9e06fb));if(_0x258771[_0x146e('0xd')]&&_0x258771['MailAccount']['Smtp']&&!_['isNil'](_0x258771[_0x146e('0xb')])){setTimeout(handleSendEmail(_0x258771,_0x9e06fb),0x3c*0x3e8);}};}function handleJob(_0x3a4203){return function(){try{if(_['isNil'](_0x3a4203[_0x146e('0x1b')])){return logger[_0x146e('0x2b')](_0x146e('0x35'));}if(_[_0x146e('0x36')](_0x3a4203[_0x146e('0x1c')])){return logger[_0x146e('0x2b')](_0x146e('0x37'));}var _0x28449f={'startDate':moment()[_0x146e('0x38')](_0x3a4203[_0x146e('0x1b')],_0x3a4203['subtractUnit'])[_0x146e('0x19')](_0x146e('0x39')),'endDate':moment()[_0x146e('0x19')](_0x146e('0x39')),'type':_0x146e('0x3a'),'output':_0x3a4203[_0x146e('0x3b')],'name':_0x3a4203[_0x146e('0x16')]};if(!_['isNil'](_0x3a4203[_0x146e('0x3c')])){logger['info'](_0x146e('0x3d'),_0x3a4203[_0x146e('0x3c')]);return analyticDefaultReportController[_0x146e('0x3e')]({'id':_0x3a4203['DefaultReportId']},_0x28449f)['then'](handleResult(_0x3a4203))[_0x146e('0x33')](handleError());}if(!_[_0x146e('0x36')](_0x3a4203[_0x146e('0x3f')])){logger[_0x146e('0x2b')](_0x146e('0x40'),_0x3a4203[_0x146e('0x3f')]);return analyticCustomReportController[_0x146e('0x3e')]({'id':_0x3a4203[_0x146e('0x3f')]},_0x28449f)[_0x146e('0x2f')](handleResult(_0x3a4203))[_0x146e('0x33')](handleError());}}catch(_0x40ce9e){logger[_0x146e('0x30')](JSON['stringify'](_0x40ce9e));}return logger['info'](_0x146e('0x41'));};}function getJobs(_0x9e20e9){var _0x50b1f0={};if(_0x9e20e9){_0x50b1f0['id']=_0x9e20e9;}return db[_0x146e('0x42')][_0x146e('0x43')]({'where':_0x50b1f0,'include':[{'model':db[_0x146e('0xd')],'attributes':['id',_0x146e('0x16'),_0x146e('0xb')],'include':[{'model':db[_0x146e('0x44')],'as':'Smtp'}]}]})[_0x146e('0x2f')](function(_0x335d85){var _0x88a21e=_[_0x146e('0x45')](manager[_0x146e('0x46')]);var _0xaa789a=_['map'](_0x335d85,function(_0x19552b){return _0x19552b['id'][_0x146e('0x47')]();});var _0x1ed670=_[_0x146e('0x48')](_0x335d85,function(_0x5d8071){return _0x5d8071['id'][_0x146e('0x47')]();});var _0x31994f=_0x9e20e9?_0xaa789a:_[_0x146e('0x49')](_0xaa789a,_0x88a21e);var _0x16f03c=_[_0x146e('0x4a')](_0xaa789a,_0x88a21e);var _0x2997b3=_[_0x146e('0x49')](_0x88a21e,_0xaa789a);var _0x56c181;var _0x131024;for(_0x56c181=0x0;_0x56c181<_0x2997b3[_0x146e('0x4b')]&&!_0x9e20e9;_0x56c181+=0x1){_0x131024=_0x2997b3[_0x56c181][_0x146e('0x47')]();if(manager[_0x146e('0x4c')](_0x131024)){manager['stop'](_0x131024);manager[_0x146e('0x4d')](_0x131024);logger[_0x146e('0x2b')](_0x146e('0x4e'),_0x131024);}}logger[_0x146e('0x2b')](_0x146e('0x4f'),JSON[_0x146e('0x28')](_0x31994f));for(_0x56c181=0x0;_0x56c181<_0x31994f['length'];_0x56c181+=0x1){_0x131024=_0x31994f[_0x56c181][_0x146e('0x47')]();logger['info'](_0x146e('0x50'),_0x131024);if(_0x9e20e9){logger[_0x146e('0x2b')]('my\x20id',_0x9e20e9);logger[_0x146e('0x2b')](JSON[_0x146e('0x28')](_0x1ed670[_0x131024]));BPromise['resolve']()[_0x146e('0x2f')](handleJob(_0x1ed670[_0x131024]));logger['info'](_0x146e('0x51'),_0x1ed670[_0x131024]['name'],_0x1ed670[_0x131024]['cron']);}else if(_0x1ed670[_0x131024][_0x146e('0x52')]&&_0x1ed670[_0x131024][_0x146e('0x53')]&&moment()[_0x146e('0x54')](_0x1ed670[_0x131024][_0x146e('0x55')],_0x1ed670[_0x131024][_0x146e('0x56')])){manager['add'](_0x131024,_0x1ed670[_0x131024]['cron'],handleJob(_0x1ed670[_0x131024]));manager['start'](_0x131024);logger['info'](_0x146e('0x57'),_0x1ed670[_0x131024][_0x146e('0x16')],_0x1ed670[_0x131024][_0x146e('0x52')]);}else if(manager[_0x146e('0x4c')](_0x131024)){manager[_0x146e('0x58')](_0x131024);manager[_0x146e('0x4d')](_0x131024);logger[_0x146e('0x2b')](_0x146e('0x59'),_0x1ed670[_0x131024][_0x146e('0x16')],_0x1ed670[_0x131024][_0x146e('0x52')]);}}for(_0x56c181=0x0,_0x131024;_0x56c181<_0x16f03c[_0x146e('0x4b')]&&!_0x9e20e9;_0x56c181+=0x1){_0x131024=_0x16f03c[_0x56c181][_0x146e('0x47')]();if(manager['exists'](_0x131024)){if(_0x1ed670[_0x131024][_0x146e('0x52')]&&_0x1ed670[_0x131024]['active']&&moment()['isBetween'](_0x1ed670[_0x131024]['startAt'],_0x1ed670[_0x131024][_0x146e('0x56')])){manager[_0x146e('0x5a')](_0x131024,_0x1ed670[_0x131024][_0x146e('0x52')],handleJob(_0x1ed670[_0x131024]));logger[_0x146e('0x2b')](_0x146e('0x5b'),_0x1ed670[_0x131024][_0x146e('0x16')],_0x1ed670[_0x131024][_0x146e('0x52')]);}else{manager['stop'](_0x131024);manager[_0x146e('0x4d')](_0x131024);logger[_0x146e('0x2b')]('stop\x20cron',_0x1ed670[_0x131024]['name'],_0x1ed670[_0x131024]['cron']);}}}})[_0x146e('0x33')](function(_0x5e5245){logger[_0x146e('0x30')](JSON[_0x146e('0x28')](_0x5e5245));});}exports[_0x146e('0x5c')]=function(_0x587709){return getJobs(_0x587709);};exports[_0x146e('0x5d')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};