Built motion from commit fe909640.|2.6.8
[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 _0x8a1f=['bluebird','../logger','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','getSmtpOptions','format','\x22%s\x22\x20<%s>','MailAccount','name','Smtp','user','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','savename','%s.%s','extname','zip','existsSync','attachments','message','text','stringify','status','Sent','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','request','error','email\x20sent','catch','error\x20mail','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','exec\x20defaul\x20report\x20id:%s','DefaultReportId','runReport','then','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','findAll','MailServerOut','CloudProvider','keys','jobs','map','keyBy','toString','intersection','difference','exists','deleteJob','toRun','index','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','endAt','add','start','stop','stop\x20cron','length','update','update\x20cron','run','util','path','lodash','moment','cron-job-manager','jayson/promise'];(function(_0x1c3429,_0x11d159){var _0x1609bd=function(_0x5ce42c){while(--_0x5ce42c){_0x1c3429['push'](_0x1c3429['shift']());}};_0x1609bd(++_0x11d159);}(_0x8a1f,0x1ad));var _0xf8a1=function(_0xe8668f,_0x42446c){_0xe8668f=_0xe8668f-0x0;var _0xf3d4ff=_0x8a1f[_0xe8668f];return _0xf3d4ff;};'use strict';var fs=require('fs');var util=require(_0xf8a1('0x0'));var path=require(_0xf8a1('0x1'));var _=require(_0xf8a1('0x2'));var moment=require(_0xf8a1('0x3'));var CronJobManager=require(_0xf8a1('0x4'));var jayson=require(_0xf8a1('0x5'));var BPromise=require(_0xf8a1('0x6'));var logger=require(_0xf8a1('0x7'))(_0xf8a1('0x8'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0xf8a1('0x9'));var analyticDefaultReportController=require(_0xf8a1('0xa'));var client=jayson[_0xf8a1('0xb')][_0xf8a1('0xc')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x2a02cb,_0x1123ec){return function(){logger[_0xf8a1('0xd')](_0xf8a1('0xe'),_0x2a02cb[_0xf8a1('0xf')]);var _0x11fe29=!![];var _0xce2357=_0x2a02cb['MailAccount'][_0xf8a1('0x10')]();var _0x531ce4={'account':_0xce2357,'message':{'from':util[_0xf8a1('0x11')](_0xf8a1('0x12'),_0x2a02cb[_0xf8a1('0x13')][_0xf8a1('0x14')],_0x2a02cb['MailAccount']['email']||_0x2a02cb[_0xf8a1('0x13')][_0xf8a1('0x15')][_0xf8a1('0x16')]),'to':_0x2a02cb['email'],'cc':_0x2a02cb['cc'],'bcc':_0x2a02cb[_0xf8a1('0x17')],'subject':util[_0xf8a1('0x11')](_0xf8a1('0x18'),_0x1123ec[_0xf8a1('0x14')],_0x2a02cb[_0xf8a1('0x19')],_0x2a02cb[_0xf8a1('0x1a')])}};var _0x3cc7fd=path[_0xf8a1('0x1b')](__dirname,'../../files/reports');var _0x102600=_0x1123ec[_0xf8a1('0x1c')];var _0xaec725=util[_0xf8a1('0x11')](_0xf8a1('0x1d'),path['basename'](_0x1123ec[_0xf8a1('0x1c')],path[_0xf8a1('0x1e')](_0x1123ec['savename'])),_0xf8a1('0x1f'));var _0x503e2f=path[_0xf8a1('0x1b')](_0x3cc7fd,_0x102600);var _0x4a4fbb=path[_0xf8a1('0x1b')](_0x3cc7fd,_0xaec725);if(fs[_0xf8a1('0x20')](_0x503e2f)){_0x1123ec['status']='Sent';_0x531ce4['message'][_0xf8a1('0x21')]=[{'filename':_0x102600,'path':_0x503e2f}];_0x531ce4[_0xf8a1('0x22')][_0xf8a1('0x23')]=util[_0xf8a1('0x11')]('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON[_0xf8a1('0x24')](_0x1123ec,null,0x2));}else if(fs[_0xf8a1('0x20')](_0x4a4fbb)){_0x1123ec[_0xf8a1('0x25')]=_0xf8a1('0x26');_0x531ce4['message'][_0xf8a1('0x21')]=[{'filename':_0xaec725,'path':_0x4a4fbb}];}else{_0x531ce4[_0xf8a1('0x22')]['text']=_0xf8a1('0x27');if(!_0x2a02cb[_0xf8a1('0x28')]){_0x11fe29=![];logger[_0xf8a1('0xd')](_0xf8a1('0x29'));}}if(_0x11fe29){return client[_0xf8a1('0x2a')]('SendMail',_0x531ce4)['then'](function(_0x33bd37){if(_0x33bd37[_0xf8a1('0x2b')]){return logger[_0xf8a1('0x2b')]('error\x20mail',JSON['stringify'](_0x33bd37));}return logger[_0xf8a1('0xd')](_0xf8a1('0x2c'));})[_0xf8a1('0x2d')](function(_0x4e0fa6){return logger[_0xf8a1('0x2b')](_0xf8a1('0x2e'),JSON['stringify'](_0x4e0fa6));});}};}function handleError(){return function(_0x4640d7){return logger[_0xf8a1('0x2b')](JSON['stringify'](_0x4640d7));};}function handleResult(_0x4f2c4a){return function(_0x577d38){logger['info']('data',JSON[_0xf8a1('0x24')](_0x577d38));if(_0x4f2c4a[_0xf8a1('0x13')]&&_0x4f2c4a[_0xf8a1('0x13')]['Smtp']&&!_[_0xf8a1('0x2f')](_0x4f2c4a[_0xf8a1('0xf')])){setTimeout(handleSendEmail(_0x4f2c4a,_0x577d38),0x3c*0x3e8);}};}function handleJob(_0x16bde6){return function(){try{if(_[_0xf8a1('0x2f')](_0x16bde6[_0xf8a1('0x19')])){return logger[_0xf8a1('0xd')](_0xf8a1('0x30'));}if(_[_0xf8a1('0x2f')](_0x16bde6[_0xf8a1('0x1a')])){return logger[_0xf8a1('0xd')](_0xf8a1('0x31'));}var _0x2d2626={'startDate':moment()['subtract'](_0x16bde6[_0xf8a1('0x19')],_0x16bde6[_0xf8a1('0x1a')])[_0xf8a1('0x11')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0xf8a1('0x11')]('YYYY-MM-DD\x20HH:mm:ss'),'type':'scheduled','output':_0x16bde6['output'],'name':_0x16bde6['name']};if(!_[_0xf8a1('0x2f')](_0x16bde6['DefaultReportId'])){logger['info'](_0xf8a1('0x32'),_0x16bde6[_0xf8a1('0x33')]);return analyticDefaultReportController[_0xf8a1('0x34')]({'id':_0x16bde6[_0xf8a1('0x33')]},_0x2d2626)[_0xf8a1('0x35')](handleResult(_0x16bde6))[_0xf8a1('0x2d')](handleError());}if(!_[_0xf8a1('0x2f')](_0x16bde6[_0xf8a1('0x36')])){logger[_0xf8a1('0xd')](_0xf8a1('0x37'),_0x16bde6[_0xf8a1('0x36')]);return analyticCustomReportController[_0xf8a1('0x34')]({'id':_0x16bde6['CustomReportId']},_0x2d2626)[_0xf8a1('0x35')](handleResult(_0x16bde6))[_0xf8a1('0x2d')](handleError());}}catch(_0xcda17e){logger[_0xf8a1('0x2b')](JSON[_0xf8a1('0x24')](_0xcda17e));}return logger['info'](_0xf8a1('0x38'));};}function getJobs(_0x36c799){var _0x2eb50a={};if(_0x36c799){_0x2eb50a['id']=_0x36c799;}return db['Schedule'][_0xf8a1('0x39')]({'where':_0x2eb50a,'include':[{'model':db[_0xf8a1('0x13')],'attributes':['id','name',_0xf8a1('0xf')],'include':[{'model':db[_0xf8a1('0x3a')],'as':_0xf8a1('0x15'),'include':[{'model':db[_0xf8a1('0x3b')],'as':_0xf8a1('0x3b')}]}]}]})[_0xf8a1('0x35')](function(_0x5f364a){var _0x378ce0=_[_0xf8a1('0x3c')](manager[_0xf8a1('0x3d')]);var _0x2c2655=_[_0xf8a1('0x3e')](_0x5f364a,function(_0x15076b){return _0x15076b['id']['toString']();});var _0x31400f=_[_0xf8a1('0x3f')](_0x5f364a,function(_0x5f137e){return _0x5f137e['id'][_0xf8a1('0x40')]();});var _0x5b1bfa=_0x36c799?_0x2c2655:_['difference'](_0x2c2655,_0x378ce0);var _0x312b04=_[_0xf8a1('0x41')](_0x2c2655,_0x378ce0);var _0x42cb19=_[_0xf8a1('0x42')](_0x378ce0,_0x2c2655);var _0xbefe89;var _0x3b4c77;for(_0xbefe89=0x0;_0xbefe89<_0x42cb19['length']&&!_0x36c799;_0xbefe89+=0x1){_0x3b4c77=_0x42cb19[_0xbefe89][_0xf8a1('0x40')]();if(manager[_0xf8a1('0x43')](_0x3b4c77)){manager['stop'](_0x3b4c77);manager[_0xf8a1('0x44')](_0x3b4c77);logger['info']('delete\x20cron',_0x3b4c77);}}logger[_0xf8a1('0xd')](_0xf8a1('0x45'),JSON['stringify'](_0x5b1bfa));for(_0xbefe89=0x0;_0xbefe89<_0x5b1bfa['length'];_0xbefe89+=0x1){_0x3b4c77=_0x5b1bfa[_0xbefe89][_0xf8a1('0x40')]();logger[_0xf8a1('0xd')](_0xf8a1('0x46'),_0x3b4c77);if(_0x36c799){logger[_0xf8a1('0xd')](_0xf8a1('0x47'),_0x36c799);logger['info'](JSON['stringify'](_0x31400f[_0x3b4c77]));BPromise[_0xf8a1('0x48')]()[_0xf8a1('0x35')](handleJob(_0x31400f[_0x3b4c77]));logger[_0xf8a1('0xd')](_0xf8a1('0x49'),_0x31400f[_0x3b4c77][_0xf8a1('0x14')],_0x31400f[_0x3b4c77][_0xf8a1('0x4a')]);}else if(_0x31400f[_0x3b4c77]['cron']&&_0x31400f[_0x3b4c77][_0xf8a1('0x4b')]&&moment()[_0xf8a1('0x4c')](_0x31400f[_0x3b4c77][_0xf8a1('0x4d')],_0x31400f[_0x3b4c77][_0xf8a1('0x4e')])){manager[_0xf8a1('0x4f')](_0x3b4c77,_0x31400f[_0x3b4c77]['cron'],handleJob(_0x31400f[_0x3b4c77]));manager[_0xf8a1('0x50')](_0x3b4c77);logger[_0xf8a1('0xd')]('add\x20cron',_0x31400f[_0x3b4c77]['name'],_0x31400f[_0x3b4c77][_0xf8a1('0x4a')]);}else if(manager[_0xf8a1('0x43')](_0x3b4c77)){manager[_0xf8a1('0x51')](_0x3b4c77);manager[_0xf8a1('0x44')](_0x3b4c77);logger['info'](_0xf8a1('0x52'),_0x31400f[_0x3b4c77][_0xf8a1('0x14')],_0x31400f[_0x3b4c77][_0xf8a1('0x4a')]);}}for(_0xbefe89=0x0,_0x3b4c77;_0xbefe89<_0x312b04[_0xf8a1('0x53')]&&!_0x36c799;_0xbefe89+=0x1){_0x3b4c77=_0x312b04[_0xbefe89][_0xf8a1('0x40')]();if(manager[_0xf8a1('0x43')](_0x3b4c77)){if(_0x31400f[_0x3b4c77][_0xf8a1('0x4a')]&&_0x31400f[_0x3b4c77][_0xf8a1('0x4b')]&&moment()[_0xf8a1('0x4c')](_0x31400f[_0x3b4c77][_0xf8a1('0x4d')],_0x31400f[_0x3b4c77][_0xf8a1('0x4e')])){manager[_0xf8a1('0x54')](_0x3b4c77,_0x31400f[_0x3b4c77][_0xf8a1('0x4a')],handleJob(_0x31400f[_0x3b4c77]));logger['info'](_0xf8a1('0x55'),_0x31400f[_0x3b4c77][_0xf8a1('0x14')],_0x31400f[_0x3b4c77][_0xf8a1('0x4a')]);}else{manager[_0xf8a1('0x51')](_0x3b4c77);manager[_0xf8a1('0x44')](_0x3b4c77);logger[_0xf8a1('0xd')]('stop\x20cron',_0x31400f[_0x3b4c77][_0xf8a1('0x14')],_0x31400f[_0x3b4c77][_0xf8a1('0x4a')]);}}}})[_0xf8a1('0x2d')](function(_0x930721){logger[_0xf8a1('0x2b')](JSON[_0xf8a1('0x24')](_0x930721));});}exports[_0xf8a1('0x56')]=function(_0xcdd200){return getJobs(_0xcdd200);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};