Built motion from commit 994c64e1.|2.6.1
[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 _0xa2a8=['join','existsSync','status','message','attachments','stringify','Sent','text','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','empty\x20file,\x20email\x20not\x20sent','SendMail','then','error','error\x20mail','catch','data','isNil','subtractNumber','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','exec\x20custom\x20report\x20id:%s','CustomReportId','no\x20report\x20id','findAll','MailServerOut','keys','jobs','map','keyBy','difference','intersection','toString','exists','deleteJob','delete\x20cron','toRun','length','index','resolve','run\x20job','cron','isBetween','startAt','endAt','add','start','add\x20cron','stop\x20cron','active','update','update\x20cron','stop','run','path','lodash','moment','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','http','info','email','MailAccount','\x22%s\x22\x20<%s>','Smtp','user','bcc','format','Report\x20%s\x20last\x20%s\x20%s','name','subtractUnit','../../files/reports','savename','%s.%s','extname','zip'];(function(_0x3b195b,_0x4dc681){var _0x432804=function(_0x5e42c8){while(--_0x5e42c8){_0x3b195b['push'](_0x3b195b['shift']());}};_0x432804(++_0x4dc681);}(_0xa2a8,0x184));var _0x8a2a=function(_0x5b00b7,_0x14cd08){_0x5b00b7=_0x5b00b7-0x0;var _0x5398d6=_0xa2a8[_0x5b00b7];return _0x5398d6;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0x8a2a('0x0'));var _=require(_0x8a2a('0x1'));var moment=require(_0x8a2a('0x2'));var CronJobManager=require('cron-job-manager');var jayson=require('jayson/promise');var BPromise=require('bluebird');var logger=require('../logger')('schedule');var db=require(_0x8a2a('0x3'))['db'];var analyticCustomReportController=require(_0x8a2a('0x4'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson['client'][_0x8a2a('0x5')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x26afe7,_0x5253c9){return function(){logger[_0x8a2a('0x6')]('Try\x20to\x20send\x20a\x20mail\x20to',_0x26afe7[_0x8a2a('0x7')]);var _0x21bb2d=!![];var _0x46dc9d=_0x26afe7[_0x8a2a('0x8')]['getSmtpOptions']();var _0x4beaad={'account':_0x46dc9d,'message':{'from':util['format'](_0x8a2a('0x9'),_0x26afe7[_0x8a2a('0x8')]['name'],_0x26afe7[_0x8a2a('0x8')][_0x8a2a('0x7')]||_0x26afe7[_0x8a2a('0x8')][_0x8a2a('0xa')][_0x8a2a('0xb')]),'to':_0x26afe7[_0x8a2a('0x7')],'cc':_0x26afe7['cc'],'bcc':_0x26afe7[_0x8a2a('0xc')],'subject':util[_0x8a2a('0xd')](_0x8a2a('0xe'),_0x5253c9[_0x8a2a('0xf')],_0x26afe7['subtractNumber'],_0x26afe7[_0x8a2a('0x10')])}};var _0x376677=path['join'](__dirname,_0x8a2a('0x11'));var _0x310f14=_0x5253c9[_0x8a2a('0x12')];var _0x1d7792=util['format'](_0x8a2a('0x13'),path['basename'](_0x5253c9[_0x8a2a('0x12')],path[_0x8a2a('0x14')](_0x5253c9[_0x8a2a('0x12')])),_0x8a2a('0x15'));var _0x3c6e37=path[_0x8a2a('0x16')](_0x376677,_0x310f14);var _0x10d8c4=path[_0x8a2a('0x16')](_0x376677,_0x1d7792);if(fs[_0x8a2a('0x17')](_0x3c6e37)){_0x5253c9[_0x8a2a('0x18')]='Sent';_0x4beaad[_0x8a2a('0x19')][_0x8a2a('0x1a')]=[{'filename':_0x310f14,'path':_0x3c6e37}];_0x4beaad[_0x8a2a('0x19')]['text']=util['format']('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON[_0x8a2a('0x1b')](_0x5253c9,null,0x2));}else if(fs['existsSync'](_0x10d8c4)){_0x5253c9[_0x8a2a('0x18')]=_0x8a2a('0x1c');_0x4beaad[_0x8a2a('0x19')][_0x8a2a('0x1a')]=[{'filename':_0x1d7792,'path':_0x10d8c4}];}else{_0x4beaad[_0x8a2a('0x19')][_0x8a2a('0x1d')]=_0x8a2a('0x1e');if(!_0x26afe7['sendIfEmpty']){_0x21bb2d=![];logger[_0x8a2a('0x6')](_0x8a2a('0x1f'));}}if(_0x21bb2d){return client['request'](_0x8a2a('0x20'),_0x4beaad)[_0x8a2a('0x21')](function(_0x1eb201){if(_0x1eb201[_0x8a2a('0x22')]){return logger[_0x8a2a('0x22')](_0x8a2a('0x23'),JSON['stringify'](_0x1eb201));}return logger[_0x8a2a('0x6')]('email\x20sent');})[_0x8a2a('0x24')](function(_0x42ca36){return logger[_0x8a2a('0x22')]('error\x20mail',JSON['stringify'](_0x42ca36));});}};}function handleError(){return function(_0x57002f){return logger['error'](JSON[_0x8a2a('0x1b')](_0x57002f));};}function handleResult(_0x5155f2){return function(_0x4f5489){logger[_0x8a2a('0x6')](_0x8a2a('0x25'),JSON[_0x8a2a('0x1b')](_0x4f5489));if(_0x5155f2[_0x8a2a('0x8')]&&_0x5155f2[_0x8a2a('0x8')][_0x8a2a('0xa')]&&!_[_0x8a2a('0x26')](_0x5155f2['email'])){setTimeout(handleSendEmail(_0x5155f2,_0x4f5489),0x3c*0x3e8);}};}function handleJob(_0x1b8e18){return function(){try{if(_['isNil'](_0x1b8e18[_0x8a2a('0x27')])){return logger[_0x8a2a('0x6')](_0x8a2a('0x28'));}if(_[_0x8a2a('0x26')](_0x1b8e18[_0x8a2a('0x10')])){return logger[_0x8a2a('0x6')](_0x8a2a('0x29'));}var _0x15f3ac={'startDate':moment()[_0x8a2a('0x2a')](_0x1b8e18[_0x8a2a('0x27')],_0x1b8e18['subtractUnit'])[_0x8a2a('0xd')](_0x8a2a('0x2b')),'endDate':moment()[_0x8a2a('0xd')](_0x8a2a('0x2b')),'type':_0x8a2a('0x2c'),'output':_0x1b8e18[_0x8a2a('0x2d')],'name':_0x1b8e18[_0x8a2a('0xf')]};if(!_[_0x8a2a('0x26')](_0x1b8e18[_0x8a2a('0x2e')])){logger[_0x8a2a('0x6')](_0x8a2a('0x2f'),_0x1b8e18['DefaultReportId']);return analyticDefaultReportController[_0x8a2a('0x30')]({'id':_0x1b8e18[_0x8a2a('0x2e')]},_0x15f3ac)[_0x8a2a('0x21')](handleResult(_0x1b8e18))[_0x8a2a('0x24')](handleError());}if(!_[_0x8a2a('0x26')](_0x1b8e18['CustomReportId'])){logger[_0x8a2a('0x6')](_0x8a2a('0x31'),_0x1b8e18[_0x8a2a('0x32')]);return analyticCustomReportController[_0x8a2a('0x30')]({'id':_0x1b8e18[_0x8a2a('0x32')]},_0x15f3ac)['then'](handleResult(_0x1b8e18))[_0x8a2a('0x24')](handleError());}}catch(_0x2656cb){logger[_0x8a2a('0x22')](JSON[_0x8a2a('0x1b')](_0x2656cb));}return logger[_0x8a2a('0x6')](_0x8a2a('0x33'));};}function getJobs(_0x588a4a){var _0x2078e3={};if(_0x588a4a){_0x2078e3['id']=_0x588a4a;}return db['Schedule'][_0x8a2a('0x34')]({'where':_0x2078e3,'include':[{'model':db[_0x8a2a('0x8')],'attributes':['id',_0x8a2a('0xf'),'email'],'include':[{'model':db[_0x8a2a('0x35')],'as':_0x8a2a('0xa'),'include':[{'model':db['CloudProvider'],'as':'CloudProvider'}]}]}]})[_0x8a2a('0x21')](function(_0x22153a){var _0x39f0c2=_[_0x8a2a('0x36')](manager[_0x8a2a('0x37')]);var _0x2ff380=_[_0x8a2a('0x38')](_0x22153a,function(_0xed349){return _0xed349['id']['toString']();});var _0x3331ee=_[_0x8a2a('0x39')](_0x22153a,function(_0x10c869){return _0x10c869['id']['toString']();});var _0x45af83=_0x588a4a?_0x2ff380:_[_0x8a2a('0x3a')](_0x2ff380,_0x39f0c2);var _0x1048f4=_[_0x8a2a('0x3b')](_0x2ff380,_0x39f0c2);var _0x18892f=_[_0x8a2a('0x3a')](_0x39f0c2,_0x2ff380);var _0x4abb65;var _0x57c610;for(_0x4abb65=0x0;_0x4abb65<_0x18892f['length']&&!_0x588a4a;_0x4abb65+=0x1){_0x57c610=_0x18892f[_0x4abb65][_0x8a2a('0x3c')]();if(manager[_0x8a2a('0x3d')](_0x57c610)){manager['stop'](_0x57c610);manager[_0x8a2a('0x3e')](_0x57c610);logger[_0x8a2a('0x6')](_0x8a2a('0x3f'),_0x57c610);}}logger[_0x8a2a('0x6')](_0x8a2a('0x40'),JSON[_0x8a2a('0x1b')](_0x45af83));for(_0x4abb65=0x0;_0x4abb65<_0x45af83[_0x8a2a('0x41')];_0x4abb65+=0x1){_0x57c610=_0x45af83[_0x4abb65][_0x8a2a('0x3c')]();logger[_0x8a2a('0x6')](_0x8a2a('0x42'),_0x57c610);if(_0x588a4a){logger['info']('my\x20id',_0x588a4a);logger['info'](JSON[_0x8a2a('0x1b')](_0x3331ee[_0x57c610]));BPromise[_0x8a2a('0x43')]()[_0x8a2a('0x21')](handleJob(_0x3331ee[_0x57c610]));logger[_0x8a2a('0x6')](_0x8a2a('0x44'),_0x3331ee[_0x57c610][_0x8a2a('0xf')],_0x3331ee[_0x57c610][_0x8a2a('0x45')]);}else if(_0x3331ee[_0x57c610][_0x8a2a('0x45')]&&_0x3331ee[_0x57c610]['active']&&moment()[_0x8a2a('0x46')](_0x3331ee[_0x57c610][_0x8a2a('0x47')],_0x3331ee[_0x57c610][_0x8a2a('0x48')])){manager[_0x8a2a('0x49')](_0x57c610,_0x3331ee[_0x57c610][_0x8a2a('0x45')],handleJob(_0x3331ee[_0x57c610]));manager[_0x8a2a('0x4a')](_0x57c610);logger[_0x8a2a('0x6')](_0x8a2a('0x4b'),_0x3331ee[_0x57c610][_0x8a2a('0xf')],_0x3331ee[_0x57c610]['cron']);}else if(manager['exists'](_0x57c610)){manager['stop'](_0x57c610);manager[_0x8a2a('0x3e')](_0x57c610);logger['info'](_0x8a2a('0x4c'),_0x3331ee[_0x57c610][_0x8a2a('0xf')],_0x3331ee[_0x57c610][_0x8a2a('0x45')]);}}for(_0x4abb65=0x0,_0x57c610;_0x4abb65<_0x1048f4['length']&&!_0x588a4a;_0x4abb65+=0x1){_0x57c610=_0x1048f4[_0x4abb65]['toString']();if(manager[_0x8a2a('0x3d')](_0x57c610)){if(_0x3331ee[_0x57c610]['cron']&&_0x3331ee[_0x57c610][_0x8a2a('0x4d')]&&moment()[_0x8a2a('0x46')](_0x3331ee[_0x57c610][_0x8a2a('0x47')],_0x3331ee[_0x57c610]['endAt'])){manager[_0x8a2a('0x4e')](_0x57c610,_0x3331ee[_0x57c610][_0x8a2a('0x45')],handleJob(_0x3331ee[_0x57c610]));logger[_0x8a2a('0x6')](_0x8a2a('0x4f'),_0x3331ee[_0x57c610][_0x8a2a('0xf')],_0x3331ee[_0x57c610][_0x8a2a('0x45')]);}else{manager[_0x8a2a('0x50')](_0x57c610);manager[_0x8a2a('0x3e')](_0x57c610);logger['info']('stop\x20cron',_0x3331ee[_0x57c610][_0x8a2a('0xf')],_0x3331ee[_0x57c610]['cron']);}}}})[_0x8a2a('0x24')](function(_0x51d581){logger[_0x8a2a('0x22')](JSON['stringify'](_0x51d581));});}exports[_0x8a2a('0x51')]=function(_0x2ce90f){return getJobs(_0x2ce90f);};exports[_0x8a2a('0x4a')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};