Built motion from commit (unavailable).|2.5.2
[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 _0x3fe7=['subtractNumber','join','../../files/reports','savename','%s.%s','extname','zip','status','Sent','message','attachments','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','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error\x20mail','email\x20sent','catch','error','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit','subtractUnit\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','Schedule','findAll','MailServerOut','jobs','toString','difference','exists','stop','deleteJob','delete\x20cron','toRun','length','run\x20job','cron','active','isBetween','start','add\x20cron','stop\x20cron','startAt','endAt','update','update\x20cron','run','util','path','lodash','moment','cron-job-manager','jayson/promise','../../mysqldb','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','user','name','format'];(function(_0x1cbbea,_0x4a0e13){var _0x22ce45=function(_0xa3af3d){while(--_0xa3af3d){_0x1cbbea['push'](_0x1cbbea['shift']());}};_0x22ce45(++_0x4a0e13);}(_0x3fe7,0xe0));var _0x73fe=function(_0xbeb808,_0x881ddf){_0xbeb808=_0xbeb808-0x0;var _0x5d6909=_0x3fe7[_0xbeb808];return _0x5d6909;};'use strict';var fs=require('fs');var util=require(_0x73fe('0x0'));var path=require(_0x73fe('0x1'));var _=require(_0x73fe('0x2'));var moment=require(_0x73fe('0x3'));var CronJobManager=require(_0x73fe('0x4'));var jayson=require(_0x73fe('0x5'));var BPromise=require('bluebird');var logger=require('../logger')('schedule');var db=require(_0x73fe('0x6'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0x73fe('0x7'));var client=jayson[_0x73fe('0x8')][_0x73fe('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x1638a0,_0x3951e2){return function(){logger[_0x73fe('0xa')](_0x73fe('0xb'),_0x1638a0[_0x73fe('0xc')]);var _0x568d7f=!![];var _0x153fdb={'tls':{'rejectUnauthorized':![]}};if(_0x1638a0[_0x73fe('0xd')][_0x73fe('0xe')][_0x73fe('0xf')]){_0x153fdb[_0x73fe('0xf')]=_0x1638a0[_0x73fe('0xd')][_0x73fe('0xe')][_0x73fe('0xf')];}else{_0x153fdb[_0x73fe('0x10')]=_0x1638a0['MailAccount'][_0x73fe('0xe')][_0x73fe('0x10')];_0x153fdb['port']=_0x1638a0['MailAccount'][_0x73fe('0xe')][_0x73fe('0x11')];_0x153fdb[_0x73fe('0x12')]=_0x1638a0[_0x73fe('0xd')][_0x73fe('0xe')][_0x73fe('0x12')];}if(_0x1638a0[_0x73fe('0xd')]['Smtp']['authentication']){_0x153fdb['auth']={'user':_0x1638a0[_0x73fe('0xd')][_0x73fe('0xe')][_0x73fe('0x13')],'pass':_0x1638a0[_0x73fe('0xd')]['Smtp']['pass']};}var _0x186075={'account':_0x153fdb,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0x1638a0['MailAccount'][_0x73fe('0x14')],_0x1638a0[_0x73fe('0xd')]['email']||_0x1638a0['MailAccount'][_0x73fe('0xe')][_0x73fe('0x13')]),'to':_0x1638a0[_0x73fe('0xc')],'cc':_0x1638a0['cc'],'bcc':_0x1638a0['bcc'],'subject':util[_0x73fe('0x15')]('Report\x20%s\x20last\x20%s\x20%s',_0x3951e2[_0x73fe('0x14')],_0x1638a0[_0x73fe('0x16')],_0x1638a0['subtractUnit'])}};var _0x350a01=path[_0x73fe('0x17')](__dirname,_0x73fe('0x18'));var _0x48c627=_0x3951e2[_0x73fe('0x19')];var _0x28e5d0=util['format'](_0x73fe('0x1a'),path['basename'](_0x3951e2[_0x73fe('0x19')],path[_0x73fe('0x1b')](_0x3951e2[_0x73fe('0x19')])),_0x73fe('0x1c'));var _0x5db935=path[_0x73fe('0x17')](_0x350a01,_0x48c627);var _0xfc84ee=path['join'](_0x350a01,_0x28e5d0);if(fs['existsSync'](_0x5db935)){_0x3951e2[_0x73fe('0x1d')]=_0x73fe('0x1e');_0x186075[_0x73fe('0x1f')][_0x73fe('0x20')]=[{'filename':_0x48c627,'path':_0x5db935}];_0x186075['message'][_0x73fe('0x21')]=util[_0x73fe('0x15')](_0x73fe('0x22'),JSON[_0x73fe('0x23')](_0x3951e2,null,0x2));}else if(fs['existsSync'](_0xfc84ee)){_0x3951e2[_0x73fe('0x1d')]=_0x73fe('0x1e');_0x186075[_0x73fe('0x1f')][_0x73fe('0x20')]=[{'filename':_0x28e5d0,'path':_0xfc84ee}];}else{_0x186075[_0x73fe('0x1f')][_0x73fe('0x21')]=_0x73fe('0x24');if(!_0x1638a0[_0x73fe('0x25')]){_0x568d7f=![];logger[_0x73fe('0xa')](_0x73fe('0x26'));}}if(_0x568d7f){return client[_0x73fe('0x27')](_0x73fe('0x28'),_0x186075)[_0x73fe('0x29')](function(_0x30180e){if(_0x30180e['error']){return logger['error'](_0x73fe('0x2a'),JSON['stringify'](_0x30180e));}return logger[_0x73fe('0xa')](_0x73fe('0x2b'));})[_0x73fe('0x2c')](function(_0x32e035){return logger[_0x73fe('0x2d')](_0x73fe('0x2a'),JSON[_0x73fe('0x23')](_0x32e035));});}};}function handleError(){return function(_0x54e73a){return logger[_0x73fe('0x2d')](JSON[_0x73fe('0x23')](_0x54e73a));};}function handleResult(_0x4fc3a6){return function(_0x44a509){logger[_0x73fe('0xa')]('data',JSON[_0x73fe('0x23')](_0x44a509));if(_0x4fc3a6['MailAccount']&&_0x4fc3a6['MailAccount'][_0x73fe('0xe')]&&!_['isNil'](_0x4fc3a6[_0x73fe('0xc')])){setTimeout(handleSendEmail(_0x4fc3a6,_0x44a509),0x3c*0x3e8);}};}function handleJob(_0x2277aa){return function(){try{if(_[_0x73fe('0x2e')](_0x2277aa[_0x73fe('0x16')])){return logger['info'](_0x73fe('0x2f'));}if(_[_0x73fe('0x2e')](_0x2277aa[_0x73fe('0x30')])){return logger[_0x73fe('0xa')](_0x73fe('0x31'));}var _0x2996a7={'startDate':moment()['subtract'](_0x2277aa[_0x73fe('0x16')],_0x2277aa[_0x73fe('0x30')])[_0x73fe('0x15')](_0x73fe('0x32')),'endDate':moment()[_0x73fe('0x15')](_0x73fe('0x32')),'type':_0x73fe('0x33'),'output':_0x2277aa[_0x73fe('0x34')],'name':_0x2277aa[_0x73fe('0x14')]};if(!_[_0x73fe('0x2e')](_0x2277aa[_0x73fe('0x35')])){logger[_0x73fe('0xa')](_0x73fe('0x36'),_0x2277aa[_0x73fe('0x35')]);return analyticDefaultReportController[_0x73fe('0x37')]({'id':_0x2277aa[_0x73fe('0x35')]},_0x2996a7)['then'](handleResult(_0x2277aa))[_0x73fe('0x2c')](handleError());}if(!_['isNil'](_0x2277aa[_0x73fe('0x38')])){logger['info'](_0x73fe('0x39'),_0x2277aa['CustomReportId']);return analyticCustomReportController[_0x73fe('0x37')]({'id':_0x2277aa[_0x73fe('0x38')]},_0x2996a7)['then'](handleResult(_0x2277aa))['catch'](handleError());}}catch(_0x4efca1){logger[_0x73fe('0x2d')](JSON['stringify'](_0x4efca1));}return logger[_0x73fe('0xa')]('no\x20report\x20id');};}function getJobs(_0x6937f1){var _0x1dfdd6={};if(_0x6937f1){_0x1dfdd6['id']=_0x6937f1;}return db[_0x73fe('0x3a')][_0x73fe('0x3b')]({'where':_0x1dfdd6,'include':[{'model':db['MailAccount'],'attributes':['id',_0x73fe('0x14'),'email'],'include':[{'model':db[_0x73fe('0x3c')],'as':_0x73fe('0xe')}]}]})[_0x73fe('0x29')](function(_0x33eee3){var _0x49db6c=_['keys'](manager[_0x73fe('0x3d')]);var _0x5231b4=_['map'](_0x33eee3,function(_0x68bb36){return _0x68bb36['id'][_0x73fe('0x3e')]();});var _0xcac5a4=_['keyBy'](_0x33eee3,function(_0x8ad300){return _0x8ad300['id'][_0x73fe('0x3e')]();});var _0x409606=_0x6937f1?_0x5231b4:_[_0x73fe('0x3f')](_0x5231b4,_0x49db6c);var _0x2f133a=_['intersection'](_0x5231b4,_0x49db6c);var _0x5c5f80=_['difference'](_0x49db6c,_0x5231b4);var _0x377cb2;var _0x5876e3;for(_0x377cb2=0x0;_0x377cb2<_0x5c5f80['length']&&!_0x6937f1;_0x377cb2+=0x1){_0x5876e3=_0x5c5f80[_0x377cb2]['toString']();if(manager[_0x73fe('0x40')](_0x5876e3)){manager[_0x73fe('0x41')](_0x5876e3);manager[_0x73fe('0x42')](_0x5876e3);logger[_0x73fe('0xa')](_0x73fe('0x43'),_0x5876e3);}}logger[_0x73fe('0xa')](_0x73fe('0x44'),JSON[_0x73fe('0x23')](_0x409606));for(_0x377cb2=0x0;_0x377cb2<_0x409606[_0x73fe('0x45')];_0x377cb2+=0x1){_0x5876e3=_0x409606[_0x377cb2][_0x73fe('0x3e')]();logger[_0x73fe('0xa')]('index',_0x5876e3);if(_0x6937f1){logger[_0x73fe('0xa')]('my\x20id',_0x6937f1);logger[_0x73fe('0xa')](JSON[_0x73fe('0x23')](_0xcac5a4[_0x5876e3]));BPromise['resolve']()[_0x73fe('0x29')](handleJob(_0xcac5a4[_0x5876e3]));logger['info'](_0x73fe('0x46'),_0xcac5a4[_0x5876e3][_0x73fe('0x14')],_0xcac5a4[_0x5876e3][_0x73fe('0x47')]);}else if(_0xcac5a4[_0x5876e3]['cron']&&_0xcac5a4[_0x5876e3][_0x73fe('0x48')]&&moment()[_0x73fe('0x49')](_0xcac5a4[_0x5876e3]['startAt'],_0xcac5a4[_0x5876e3]['endAt'])){manager['add'](_0x5876e3,_0xcac5a4[_0x5876e3]['cron'],handleJob(_0xcac5a4[_0x5876e3]));manager[_0x73fe('0x4a')](_0x5876e3);logger['info'](_0x73fe('0x4b'),_0xcac5a4[_0x5876e3][_0x73fe('0x14')],_0xcac5a4[_0x5876e3][_0x73fe('0x47')]);}else if(manager[_0x73fe('0x40')](_0x5876e3)){manager[_0x73fe('0x41')](_0x5876e3);manager[_0x73fe('0x42')](_0x5876e3);logger[_0x73fe('0xa')](_0x73fe('0x4c'),_0xcac5a4[_0x5876e3][_0x73fe('0x14')],_0xcac5a4[_0x5876e3][_0x73fe('0x47')]);}}for(_0x377cb2=0x0,_0x5876e3;_0x377cb2<_0x2f133a['length']&&!_0x6937f1;_0x377cb2+=0x1){_0x5876e3=_0x2f133a[_0x377cb2][_0x73fe('0x3e')]();if(manager[_0x73fe('0x40')](_0x5876e3)){if(_0xcac5a4[_0x5876e3][_0x73fe('0x47')]&&_0xcac5a4[_0x5876e3][_0x73fe('0x48')]&&moment()['isBetween'](_0xcac5a4[_0x5876e3][_0x73fe('0x4d')],_0xcac5a4[_0x5876e3][_0x73fe('0x4e')])){manager[_0x73fe('0x4f')](_0x5876e3,_0xcac5a4[_0x5876e3][_0x73fe('0x47')],handleJob(_0xcac5a4[_0x5876e3]));logger[_0x73fe('0xa')](_0x73fe('0x50'),_0xcac5a4[_0x5876e3][_0x73fe('0x14')],_0xcac5a4[_0x5876e3][_0x73fe('0x47')]);}else{manager[_0x73fe('0x41')](_0x5876e3);manager['deleteJob'](_0x5876e3);logger['info'](_0x73fe('0x4c'),_0xcac5a4[_0x5876e3][_0x73fe('0x14')],_0xcac5a4[_0x5876e3][_0x73fe('0x47')]);}}}})[_0x73fe('0x2c')](function(_0x50bade){logger['error'](JSON[_0x73fe('0x23')](_0x50bade));});}exports[_0x73fe('0x51')]=function(_0x51a977){return getJobs(_0x51a977);};exports[_0x73fe('0x4a')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};