Built motion from commit (unavailable).|2.5.27
[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 _0xc5c7=['stop','deleteJob','delete\x20cron','toRun','index','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','endAt','add','stop\x20cron','update','start','lodash','moment','cron-job-manager','bluebird','../logger','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','MailAccount','Smtp','service','host','port','secure','auth','user','pass','format','\x22%s\x22\x20<%s>','email','bcc','Report\x20%s\x20last\x20%s\x20%s','name','subtractUnit','join','../../files/reports','savename','extname','existsSync','Sent','attachments','message','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','text','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','SendMail','error','error\x20mail','email\x20sent','data','isNil','subtractNumber','subtractNumber\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','then','catch','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','MailServerOut','keys','map','toString','difference','intersection','exists'];(function(_0x5ce20f,_0x1759b7){var _0x47b66e=function(_0x372cb2){while(--_0x372cb2){_0x5ce20f['push'](_0x5ce20f['shift']());}};_0x47b66e(++_0x1759b7);}(_0xc5c7,0x1c4));var _0x7c5c=function(_0x551603,_0x42e62e){_0x551603=_0x551603-0x0;var _0x4ad6ac=_0xc5c7[_0x551603];return _0x4ad6ac;};'use strict';var fs=require('fs');var util=require('util');var path=require('path');var _=require(_0x7c5c('0x0'));var moment=require(_0x7c5c('0x1'));var CronJobManager=require(_0x7c5c('0x2'));var jayson=require('jayson/promise');var BPromise=require(_0x7c5c('0x3'));var logger=require(_0x7c5c('0x4'))(_0x7c5c('0x5'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0x7c5c('0x6'));var analyticDefaultReportController=require(_0x7c5c('0x7'));var client=jayson[_0x7c5c('0x8')][_0x7c5c('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x318f14,_0x288af8){return function(){logger[_0x7c5c('0xa')](_0x7c5c('0xb'),_0x318f14['email']);var _0x4f13c3=!![];var _0x377285={'tls':{'rejectUnauthorized':![]}};if(_0x318f14[_0x7c5c('0xc')][_0x7c5c('0xd')][_0x7c5c('0xe')]){_0x377285['service']=_0x318f14['MailAccount']['Smtp'][_0x7c5c('0xe')];}else{_0x377285[_0x7c5c('0xf')]=_0x318f14['MailAccount'][_0x7c5c('0xd')][_0x7c5c('0xf')];_0x377285[_0x7c5c('0x10')]=_0x318f14[_0x7c5c('0xc')]['Smtp'][_0x7c5c('0x10')];_0x377285[_0x7c5c('0x11')]=_0x318f14[_0x7c5c('0xc')][_0x7c5c('0xd')][_0x7c5c('0x11')];}if(_0x318f14[_0x7c5c('0xc')][_0x7c5c('0xd')]['authentication']){_0x377285[_0x7c5c('0x12')]={'user':_0x318f14[_0x7c5c('0xc')][_0x7c5c('0xd')][_0x7c5c('0x13')],'pass':_0x318f14[_0x7c5c('0xc')][_0x7c5c('0xd')][_0x7c5c('0x14')]};}var _0x415641={'account':_0x377285,'message':{'from':util[_0x7c5c('0x15')](_0x7c5c('0x16'),_0x318f14[_0x7c5c('0xc')]['name'],_0x318f14[_0x7c5c('0xc')][_0x7c5c('0x17')]||_0x318f14[_0x7c5c('0xc')]['Smtp'][_0x7c5c('0x13')]),'to':_0x318f14[_0x7c5c('0x17')],'cc':_0x318f14['cc'],'bcc':_0x318f14[_0x7c5c('0x18')],'subject':util[_0x7c5c('0x15')](_0x7c5c('0x19'),_0x288af8[_0x7c5c('0x1a')],_0x318f14['subtractNumber'],_0x318f14[_0x7c5c('0x1b')])}};var _0x5025a5=path[_0x7c5c('0x1c')](__dirname,_0x7c5c('0x1d'));var _0x12c647=_0x288af8[_0x7c5c('0x1e')];var _0x554d94=util['format']('%s.%s',path['basename'](_0x288af8['savename'],path[_0x7c5c('0x1f')](_0x288af8[_0x7c5c('0x1e')])),'zip');var _0x4add95=path[_0x7c5c('0x1c')](_0x5025a5,_0x12c647);var _0x4b2c91=path[_0x7c5c('0x1c')](_0x5025a5,_0x554d94);if(fs[_0x7c5c('0x20')](_0x4add95)){_0x288af8['status']=_0x7c5c('0x21');_0x415641['message'][_0x7c5c('0x22')]=[{'filename':_0x12c647,'path':_0x4add95}];_0x415641[_0x7c5c('0x23')]['text']=util['format'](_0x7c5c('0x24'),JSON[_0x7c5c('0x25')](_0x288af8,null,0x2));}else if(fs[_0x7c5c('0x20')](_0x4b2c91)){_0x288af8['status']=_0x7c5c('0x21');_0x415641['message']['attachments']=[{'filename':_0x554d94,'path':_0x4b2c91}];}else{_0x415641['message'][_0x7c5c('0x26')]=_0x7c5c('0x27');if(!_0x318f14[_0x7c5c('0x28')]){_0x4f13c3=![];logger[_0x7c5c('0xa')](_0x7c5c('0x29'));}}if(_0x4f13c3){return client[_0x7c5c('0x2a')](_0x7c5c('0x2b'),_0x415641)['then'](function(_0x9deebd){if(_0x9deebd[_0x7c5c('0x2c')]){return logger[_0x7c5c('0x2c')](_0x7c5c('0x2d'),JSON[_0x7c5c('0x25')](_0x9deebd));}return logger[_0x7c5c('0xa')](_0x7c5c('0x2e'));})['catch'](function(_0x577192){return logger[_0x7c5c('0x2c')](_0x7c5c('0x2d'),JSON[_0x7c5c('0x25')](_0x577192));});}};}function handleError(){return function(_0x4218d0){return logger['error'](JSON[_0x7c5c('0x25')](_0x4218d0));};}function handleResult(_0x49ca97){return function(_0x2a6f08){logger[_0x7c5c('0xa')](_0x7c5c('0x2f'),JSON[_0x7c5c('0x25')](_0x2a6f08));if(_0x49ca97[_0x7c5c('0xc')]&&_0x49ca97[_0x7c5c('0xc')][_0x7c5c('0xd')]&&!_[_0x7c5c('0x30')](_0x49ca97[_0x7c5c('0x17')])){setTimeout(handleSendEmail(_0x49ca97,_0x2a6f08),0x3c*0x3e8);}};}function handleJob(_0x3b006a){return function(){try{if(_[_0x7c5c('0x30')](_0x3b006a[_0x7c5c('0x31')])){return logger[_0x7c5c('0xa')](_0x7c5c('0x32'));}if(_['isNil'](_0x3b006a[_0x7c5c('0x1b')])){return logger['info']('subtractUnit\x20null\x20or\x20undefined');}var _0x23cc29={'startDate':moment()[_0x7c5c('0x33')](_0x3b006a[_0x7c5c('0x31')],_0x3b006a[_0x7c5c('0x1b')])[_0x7c5c('0x15')]('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0x7c5c('0x15')](_0x7c5c('0x34')),'type':_0x7c5c('0x35'),'output':_0x3b006a[_0x7c5c('0x36')],'name':_0x3b006a['name']};if(!_[_0x7c5c('0x30')](_0x3b006a[_0x7c5c('0x37')])){logger[_0x7c5c('0xa')](_0x7c5c('0x38'),_0x3b006a[_0x7c5c('0x37')]);return analyticDefaultReportController['runReport']({'id':_0x3b006a[_0x7c5c('0x37')]},_0x23cc29)[_0x7c5c('0x39')](handleResult(_0x3b006a))[_0x7c5c('0x3a')](handleError());}if(!_[_0x7c5c('0x30')](_0x3b006a[_0x7c5c('0x3b')])){logger[_0x7c5c('0xa')](_0x7c5c('0x3c'),_0x3b006a['CustomReportId']);return analyticCustomReportController['runReport']({'id':_0x3b006a['CustomReportId']},_0x23cc29)['then'](handleResult(_0x3b006a))[_0x7c5c('0x3a')](handleError());}}catch(_0x4bbc9c){logger[_0x7c5c('0x2c')](JSON[_0x7c5c('0x25')](_0x4bbc9c));}return logger[_0x7c5c('0xa')](_0x7c5c('0x3d'));};}function getJobs(_0x173aa3){var _0x564c59={};if(_0x173aa3){_0x564c59['id']=_0x173aa3;}return db[_0x7c5c('0x3e')]['findAll']({'where':_0x564c59,'include':[{'model':db[_0x7c5c('0xc')],'attributes':['id',_0x7c5c('0x1a'),_0x7c5c('0x17')],'include':[{'model':db[_0x7c5c('0x3f')],'as':_0x7c5c('0xd')}]}]})['then'](function(_0x2e1339){var _0x42ccce=_[_0x7c5c('0x40')](manager['jobs']);var _0x1e9e91=_[_0x7c5c('0x41')](_0x2e1339,function(_0x1596f3){return _0x1596f3['id'][_0x7c5c('0x42')]();});var _0x4e198d=_['keyBy'](_0x2e1339,function(_0x3de966){return _0x3de966['id'][_0x7c5c('0x42')]();});var _0x40309c=_0x173aa3?_0x1e9e91:_[_0x7c5c('0x43')](_0x1e9e91,_0x42ccce);var _0x14a52a=_[_0x7c5c('0x44')](_0x1e9e91,_0x42ccce);var _0x29df26=_[_0x7c5c('0x43')](_0x42ccce,_0x1e9e91);var _0x34eee3;var _0x476f3e;for(_0x34eee3=0x0;_0x34eee3<_0x29df26['length']&&!_0x173aa3;_0x34eee3+=0x1){_0x476f3e=_0x29df26[_0x34eee3][_0x7c5c('0x42')]();if(manager[_0x7c5c('0x45')](_0x476f3e)){manager[_0x7c5c('0x46')](_0x476f3e);manager[_0x7c5c('0x47')](_0x476f3e);logger[_0x7c5c('0xa')](_0x7c5c('0x48'),_0x476f3e);}}logger[_0x7c5c('0xa')](_0x7c5c('0x49'),JSON[_0x7c5c('0x25')](_0x40309c));for(_0x34eee3=0x0;_0x34eee3<_0x40309c['length'];_0x34eee3+=0x1){_0x476f3e=_0x40309c[_0x34eee3][_0x7c5c('0x42')]();logger[_0x7c5c('0xa')](_0x7c5c('0x4a'),_0x476f3e);if(_0x173aa3){logger['info'](_0x7c5c('0x4b'),_0x173aa3);logger['info'](JSON[_0x7c5c('0x25')](_0x4e198d[_0x476f3e]));BPromise[_0x7c5c('0x4c')]()[_0x7c5c('0x39')](handleJob(_0x4e198d[_0x476f3e]));logger[_0x7c5c('0xa')](_0x7c5c('0x4d'),_0x4e198d[_0x476f3e][_0x7c5c('0x1a')],_0x4e198d[_0x476f3e][_0x7c5c('0x4e')]);}else if(_0x4e198d[_0x476f3e][_0x7c5c('0x4e')]&&_0x4e198d[_0x476f3e][_0x7c5c('0x4f')]&&moment()[_0x7c5c('0x50')](_0x4e198d[_0x476f3e][_0x7c5c('0x51')],_0x4e198d[_0x476f3e][_0x7c5c('0x52')])){manager[_0x7c5c('0x53')](_0x476f3e,_0x4e198d[_0x476f3e]['cron'],handleJob(_0x4e198d[_0x476f3e]));manager['start'](_0x476f3e);logger[_0x7c5c('0xa')]('add\x20cron',_0x4e198d[_0x476f3e][_0x7c5c('0x1a')],_0x4e198d[_0x476f3e][_0x7c5c('0x4e')]);}else if(manager[_0x7c5c('0x45')](_0x476f3e)){manager['stop'](_0x476f3e);manager['deleteJob'](_0x476f3e);logger[_0x7c5c('0xa')](_0x7c5c('0x54'),_0x4e198d[_0x476f3e][_0x7c5c('0x1a')],_0x4e198d[_0x476f3e][_0x7c5c('0x4e')]);}}for(_0x34eee3=0x0,_0x476f3e;_0x34eee3<_0x14a52a['length']&&!_0x173aa3;_0x34eee3+=0x1){_0x476f3e=_0x14a52a[_0x34eee3][_0x7c5c('0x42')]();if(manager[_0x7c5c('0x45')](_0x476f3e)){if(_0x4e198d[_0x476f3e][_0x7c5c('0x4e')]&&_0x4e198d[_0x476f3e]['active']&&moment()['isBetween'](_0x4e198d[_0x476f3e][_0x7c5c('0x51')],_0x4e198d[_0x476f3e][_0x7c5c('0x52')])){manager[_0x7c5c('0x55')](_0x476f3e,_0x4e198d[_0x476f3e][_0x7c5c('0x4e')],handleJob(_0x4e198d[_0x476f3e]));logger['info']('update\x20cron',_0x4e198d[_0x476f3e]['name'],_0x4e198d[_0x476f3e][_0x7c5c('0x4e')]);}else{manager[_0x7c5c('0x46')](_0x476f3e);manager[_0x7c5c('0x47')](_0x476f3e);logger['info']('stop\x20cron',_0x4e198d[_0x476f3e][_0x7c5c('0x1a')],_0x4e198d[_0x476f3e][_0x7c5c('0x4e')]);}}}})[_0x7c5c('0x3a')](function(_0x3aee03){logger[_0x7c5c('0x2c')](JSON['stringify'](_0x3aee03));});}exports['run']=function(_0x1fbbde){return getJobs(_0x1fbbde);};exports[_0x7c5c('0x56')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};