Built motion from commit da617fac.|2.6.6
[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 _0x2e81=['../../files/reports','savename','zip','Sent','message','attachments','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','status','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','then','error','error\x20mail','email\x20sent','catch','data','Smtp','isNil','subtractNumber\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','runReport','CustomReportId','Schedule','MailServerOut','CloudProvider','keys','jobs','map','toString','keyBy','difference','intersection','length','exists','stop','deleteJob','delete\x20cron','index','my\x20id','resolve','run\x20job','cron','isBetween','startAt','endAt','add','stop\x20cron','update','update\x20cron','run','start','util','path','lodash','cron-job-manager','bluebird','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','getSmtpOptions','format','\x22%s\x22\x20<%s>','name','MailAccount','email','user','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join'];(function(_0x398a1f,_0x6fd43d){var _0x433a26=function(_0x406b94){while(--_0x406b94){_0x398a1f['push'](_0x398a1f['shift']());}};_0x433a26(++_0x6fd43d);}(_0x2e81,0x13b));var _0x12e8=function(_0x621bee,_0x58f8c0){_0x621bee=_0x621bee-0x0;var _0x3076c8=_0x2e81[_0x621bee];return _0x3076c8;};'use strict';var fs=require('fs');var util=require(_0x12e8('0x0'));var path=require(_0x12e8('0x1'));var _=require(_0x12e8('0x2'));var moment=require('moment');var CronJobManager=require(_0x12e8('0x3'));var jayson=require('jayson/promise');var BPromise=require(_0x12e8('0x4'));var logger=require(_0x12e8('0x5'))(_0x12e8('0x6'));var db=require(_0x12e8('0x7'))['db'];var analyticCustomReportController=require(_0x12e8('0x8'));var analyticDefaultReportController=require(_0x12e8('0x9'));var client=jayson[_0x12e8('0xa')][_0x12e8('0xb')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4105d8,_0x3b2ddb){return function(){logger[_0x12e8('0xc')]('Try\x20to\x20send\x20a\x20mail\x20to',_0x4105d8['email']);var _0x2bd26a=!![];var _0x268e1f=_0x4105d8['MailAccount'][_0x12e8('0xd')]();var _0x4a3bf2={'account':_0x268e1f,'message':{'from':util[_0x12e8('0xe')](_0x12e8('0xf'),_0x4105d8['MailAccount'][_0x12e8('0x10')],_0x4105d8[_0x12e8('0x11')][_0x12e8('0x12')]||_0x4105d8['MailAccount']['Smtp'][_0x12e8('0x13')]),'to':_0x4105d8[_0x12e8('0x12')],'cc':_0x4105d8['cc'],'bcc':_0x4105d8[_0x12e8('0x14')],'subject':util['format'](_0x12e8('0x15'),_0x3b2ddb[_0x12e8('0x10')],_0x4105d8[_0x12e8('0x16')],_0x4105d8[_0x12e8('0x17')])}};var _0x573e5c=path[_0x12e8('0x18')](__dirname,_0x12e8('0x19'));var _0x217346=_0x3b2ddb['savename'];var _0x471383=util['format']('%s.%s',path['basename'](_0x3b2ddb[_0x12e8('0x1a')],path['extname'](_0x3b2ddb['savename'])),_0x12e8('0x1b'));var _0xd537ca=path['join'](_0x573e5c,_0x217346);var _0x4589b4=path[_0x12e8('0x18')](_0x573e5c,_0x471383);if(fs['existsSync'](_0xd537ca)){_0x3b2ddb['status']=_0x12e8('0x1c');_0x4a3bf2[_0x12e8('0x1d')][_0x12e8('0x1e')]=[{'filename':_0x217346,'path':_0xd537ca}];_0x4a3bf2[_0x12e8('0x1d')]['text']=util['format'](_0x12e8('0x1f'),JSON[_0x12e8('0x20')](_0x3b2ddb,null,0x2));}else if(fs['existsSync'](_0x4589b4)){_0x3b2ddb[_0x12e8('0x21')]=_0x12e8('0x1c');_0x4a3bf2[_0x12e8('0x1d')]['attachments']=[{'filename':_0x471383,'path':_0x4589b4}];}else{_0x4a3bf2[_0x12e8('0x1d')][_0x12e8('0x22')]=_0x12e8('0x23');if(!_0x4105d8[_0x12e8('0x24')]){_0x2bd26a=![];logger[_0x12e8('0xc')](_0x12e8('0x25'));}}if(_0x2bd26a){return client[_0x12e8('0x26')](_0x12e8('0x27'),_0x4a3bf2)[_0x12e8('0x28')](function(_0x41ed01){if(_0x41ed01[_0x12e8('0x29')]){return logger[_0x12e8('0x29')](_0x12e8('0x2a'),JSON[_0x12e8('0x20')](_0x41ed01));}return logger[_0x12e8('0xc')](_0x12e8('0x2b'));})[_0x12e8('0x2c')](function(_0x4d5962){return logger[_0x12e8('0x29')](_0x12e8('0x2a'),JSON[_0x12e8('0x20')](_0x4d5962));});}};}function handleError(){return function(_0x25b24d){return logger[_0x12e8('0x29')](JSON[_0x12e8('0x20')](_0x25b24d));};}function handleResult(_0x5c2f5d){return function(_0x35f122){logger[_0x12e8('0xc')](_0x12e8('0x2d'),JSON[_0x12e8('0x20')](_0x35f122));if(_0x5c2f5d[_0x12e8('0x11')]&&_0x5c2f5d[_0x12e8('0x11')][_0x12e8('0x2e')]&&!_[_0x12e8('0x2f')](_0x5c2f5d[_0x12e8('0x12')])){setTimeout(handleSendEmail(_0x5c2f5d,_0x35f122),0x3c*0x3e8);}};}function handleJob(_0x46b527){return function(){try{if(_[_0x12e8('0x2f')](_0x46b527[_0x12e8('0x16')])){return logger[_0x12e8('0xc')](_0x12e8('0x30'));}if(_[_0x12e8('0x2f')](_0x46b527['subtractUnit'])){return logger['info']('subtractUnit\x20null\x20or\x20undefined');}var _0x5f1b28={'startDate':moment()[_0x12e8('0x31')](_0x46b527[_0x12e8('0x16')],_0x46b527[_0x12e8('0x17')])[_0x12e8('0xe')](_0x12e8('0x32')),'endDate':moment()[_0x12e8('0xe')](_0x12e8('0x32')),'type':_0x12e8('0x33'),'output':_0x46b527[_0x12e8('0x34')],'name':_0x46b527[_0x12e8('0x10')]};if(!_['isNil'](_0x46b527[_0x12e8('0x35')])){logger[_0x12e8('0xc')]('exec\x20defaul\x20report\x20id:%s',_0x46b527[_0x12e8('0x35')]);return analyticDefaultReportController[_0x12e8('0x36')]({'id':_0x46b527[_0x12e8('0x35')]},_0x5f1b28)['then'](handleResult(_0x46b527))[_0x12e8('0x2c')](handleError());}if(!_[_0x12e8('0x2f')](_0x46b527['CustomReportId'])){logger[_0x12e8('0xc')]('exec\x20custom\x20report\x20id:%s',_0x46b527['CustomReportId']);return analyticCustomReportController['runReport']({'id':_0x46b527[_0x12e8('0x37')]},_0x5f1b28)[_0x12e8('0x28')](handleResult(_0x46b527))['catch'](handleError());}}catch(_0x208165){logger[_0x12e8('0x29')](JSON[_0x12e8('0x20')](_0x208165));}return logger[_0x12e8('0xc')]('no\x20report\x20id');};}function getJobs(_0x13ae22){var _0x280e48={};if(_0x13ae22){_0x280e48['id']=_0x13ae22;}return db[_0x12e8('0x38')]['findAll']({'where':_0x280e48,'include':[{'model':db[_0x12e8('0x11')],'attributes':['id',_0x12e8('0x10'),'email'],'include':[{'model':db[_0x12e8('0x39')],'as':_0x12e8('0x2e'),'include':[{'model':db[_0x12e8('0x3a')],'as':_0x12e8('0x3a')}]}]}]})['then'](function(_0x14c3c1){var _0x221f78=_[_0x12e8('0x3b')](manager[_0x12e8('0x3c')]);var _0x25258c=_[_0x12e8('0x3d')](_0x14c3c1,function(_0x2dfdf5){return _0x2dfdf5['id'][_0x12e8('0x3e')]();});var _0x538d52=_[_0x12e8('0x3f')](_0x14c3c1,function(_0x4263bc){return _0x4263bc['id'][_0x12e8('0x3e')]();});var _0x4db61c=_0x13ae22?_0x25258c:_[_0x12e8('0x40')](_0x25258c,_0x221f78);var _0x32064e=_[_0x12e8('0x41')](_0x25258c,_0x221f78);var _0x1daad0=_[_0x12e8('0x40')](_0x221f78,_0x25258c);var _0x3c8f8d;var _0x213e45;for(_0x3c8f8d=0x0;_0x3c8f8d<_0x1daad0[_0x12e8('0x42')]&&!_0x13ae22;_0x3c8f8d+=0x1){_0x213e45=_0x1daad0[_0x3c8f8d][_0x12e8('0x3e')]();if(manager[_0x12e8('0x43')](_0x213e45)){manager[_0x12e8('0x44')](_0x213e45);manager[_0x12e8('0x45')](_0x213e45);logger['info'](_0x12e8('0x46'),_0x213e45);}}logger[_0x12e8('0xc')]('toRun',JSON[_0x12e8('0x20')](_0x4db61c));for(_0x3c8f8d=0x0;_0x3c8f8d<_0x4db61c[_0x12e8('0x42')];_0x3c8f8d+=0x1){_0x213e45=_0x4db61c[_0x3c8f8d]['toString']();logger[_0x12e8('0xc')](_0x12e8('0x47'),_0x213e45);if(_0x13ae22){logger[_0x12e8('0xc')](_0x12e8('0x48'),_0x13ae22);logger[_0x12e8('0xc')](JSON[_0x12e8('0x20')](_0x538d52[_0x213e45]));BPromise[_0x12e8('0x49')]()[_0x12e8('0x28')](handleJob(_0x538d52[_0x213e45]));logger['info'](_0x12e8('0x4a'),_0x538d52[_0x213e45][_0x12e8('0x10')],_0x538d52[_0x213e45][_0x12e8('0x4b')]);}else if(_0x538d52[_0x213e45][_0x12e8('0x4b')]&&_0x538d52[_0x213e45]['active']&&moment()[_0x12e8('0x4c')](_0x538d52[_0x213e45][_0x12e8('0x4d')],_0x538d52[_0x213e45][_0x12e8('0x4e')])){manager[_0x12e8('0x4f')](_0x213e45,_0x538d52[_0x213e45]['cron'],handleJob(_0x538d52[_0x213e45]));manager['start'](_0x213e45);logger[_0x12e8('0xc')]('add\x20cron',_0x538d52[_0x213e45]['name'],_0x538d52[_0x213e45][_0x12e8('0x4b')]);}else if(manager[_0x12e8('0x43')](_0x213e45)){manager[_0x12e8('0x44')](_0x213e45);manager[_0x12e8('0x45')](_0x213e45);logger[_0x12e8('0xc')](_0x12e8('0x50'),_0x538d52[_0x213e45][_0x12e8('0x10')],_0x538d52[_0x213e45][_0x12e8('0x4b')]);}}for(_0x3c8f8d=0x0,_0x213e45;_0x3c8f8d<_0x32064e['length']&&!_0x13ae22;_0x3c8f8d+=0x1){_0x213e45=_0x32064e[_0x3c8f8d][_0x12e8('0x3e')]();if(manager['exists'](_0x213e45)){if(_0x538d52[_0x213e45][_0x12e8('0x4b')]&&_0x538d52[_0x213e45]['active']&&moment()['isBetween'](_0x538d52[_0x213e45][_0x12e8('0x4d')],_0x538d52[_0x213e45][_0x12e8('0x4e')])){manager[_0x12e8('0x51')](_0x213e45,_0x538d52[_0x213e45][_0x12e8('0x4b')],handleJob(_0x538d52[_0x213e45]));logger[_0x12e8('0xc')](_0x12e8('0x52'),_0x538d52[_0x213e45][_0x12e8('0x10')],_0x538d52[_0x213e45]['cron']);}else{manager[_0x12e8('0x44')](_0x213e45);manager[_0x12e8('0x45')](_0x213e45);logger[_0x12e8('0xc')](_0x12e8('0x50'),_0x538d52[_0x213e45][_0x12e8('0x10')],_0x538d52[_0x213e45][_0x12e8('0x4b')]);}}}})['catch'](function(_0x5235af){logger['error'](JSON[_0x12e8('0x20')](_0x5235af));});}exports[_0x12e8('0x53')]=function(_0x8daeed){return getJobs(_0x8daeed);};exports[_0x12e8('0x54')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};