Built motion from commit (unavailable).|2.5.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 _0x8c77=['error','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractNumber','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','catch','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','findAll','MailServerOut','keys','jobs','toString','keyBy','difference','intersection','deleteJob','delete\x20cron','toRun','index','resolve','run\x20job','cron','active','endAt','add','start','add\x20cron','exists','stop','stop\x20cron','update','update\x20cron','run','path','lodash','moment','cron-job-manager','jayson/promise','bluebird','schedule','../../mysqldb','client','http','info','email','MailAccount','service','Smtp','host','port','secure','authentication','user','pass','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractUnit','join','../../files/reports','savename','%s.%s','basename','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','existsSync','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','then','error\x20mail','email\x20sent'];(function(_0x46d071,_0x1edac5){var _0xa4e8fc=function(_0x1d23d0){while(--_0x1d23d0){_0x46d071['push'](_0x46d071['shift']());}};_0xa4e8fc(++_0x1edac5);}(_0x8c77,0xde));var _0x78c7=function(_0x54e2e8,_0x245244){_0x54e2e8=_0x54e2e8-0x0;var _0x52f932=_0x8c77[_0x54e2e8];return _0x52f932;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0x78c7('0x0'));var _=require(_0x78c7('0x1'));var moment=require(_0x78c7('0x2'));var CronJobManager=require(_0x78c7('0x3'));var jayson=require(_0x78c7('0x4'));var BPromise=require(_0x78c7('0x5'));var logger=require('../logger')(_0x78c7('0x6'));var db=require(_0x78c7('0x7'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x78c7('0x8')][_0x78c7('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x3ad21d,_0x1ccf8b){return function(){logger[_0x78c7('0xa')]('Try\x20to\x20send\x20a\x20mail\x20to',_0x3ad21d[_0x78c7('0xb')]);var _0x16df13=!![];var _0x54f508={'tls':{'rejectUnauthorized':![]}};if(_0x3ad21d[_0x78c7('0xc')]['Smtp'][_0x78c7('0xd')]){_0x54f508[_0x78c7('0xd')]=_0x3ad21d[_0x78c7('0xc')]['Smtp'][_0x78c7('0xd')];}else{_0x54f508['host']=_0x3ad21d[_0x78c7('0xc')][_0x78c7('0xe')][_0x78c7('0xf')];_0x54f508['port']=_0x3ad21d[_0x78c7('0xc')][_0x78c7('0xe')][_0x78c7('0x10')];_0x54f508[_0x78c7('0x11')]=_0x3ad21d['MailAccount']['Smtp'][_0x78c7('0x11')];}if(_0x3ad21d[_0x78c7('0xc')]['Smtp'][_0x78c7('0x12')]){_0x54f508['auth']={'user':_0x3ad21d[_0x78c7('0xc')]['Smtp'][_0x78c7('0x13')],'pass':_0x3ad21d[_0x78c7('0xc')]['Smtp'][_0x78c7('0x14')]};}var _0x459fe9={'account':_0x54f508,'message':{'from':util[_0x78c7('0x15')](_0x78c7('0x16'),_0x3ad21d[_0x78c7('0xc')][_0x78c7('0x17')],_0x3ad21d[_0x78c7('0xc')]['email']||_0x3ad21d[_0x78c7('0xc')]['Smtp'][_0x78c7('0x13')]),'to':_0x3ad21d['email'],'cc':_0x3ad21d['cc'],'bcc':_0x3ad21d[_0x78c7('0x18')],'subject':util[_0x78c7('0x15')](_0x78c7('0x19'),_0x1ccf8b['name'],_0x3ad21d['subtractNumber'],_0x3ad21d[_0x78c7('0x1a')])}};var _0x3dd9b3=path[_0x78c7('0x1b')](__dirname,_0x78c7('0x1c'));var _0x3443c7=_0x1ccf8b[_0x78c7('0x1d')];var _0x2fccc2=util[_0x78c7('0x15')](_0x78c7('0x1e'),path[_0x78c7('0x1f')](_0x1ccf8b[_0x78c7('0x1d')],path[_0x78c7('0x20')](_0x1ccf8b[_0x78c7('0x1d')])),_0x78c7('0x21'));var _0x3c11c2=path[_0x78c7('0x1b')](_0x3dd9b3,_0x3443c7);var _0x53d537=path[_0x78c7('0x1b')](_0x3dd9b3,_0x2fccc2);if(fs['existsSync'](_0x3c11c2)){_0x1ccf8b[_0x78c7('0x22')]=_0x78c7('0x23');_0x459fe9[_0x78c7('0x24')][_0x78c7('0x25')]=[{'filename':_0x3443c7,'path':_0x3c11c2}];_0x459fe9[_0x78c7('0x24')][_0x78c7('0x26')]=util[_0x78c7('0x15')](_0x78c7('0x27'),JSON[_0x78c7('0x28')](_0x1ccf8b,null,0x2));}else if(fs[_0x78c7('0x29')](_0x53d537)){_0x1ccf8b[_0x78c7('0x22')]='Sent';_0x459fe9['message'][_0x78c7('0x25')]=[{'filename':_0x2fccc2,'path':_0x53d537}];}else{_0x459fe9[_0x78c7('0x24')]['text']=_0x78c7('0x2a');if(!_0x3ad21d[_0x78c7('0x2b')]){_0x16df13=![];logger['info'](_0x78c7('0x2c'));}}if(_0x16df13){return client['request']('SendMail',_0x459fe9)[_0x78c7('0x2d')](function(_0xc2e6fc){if(_0xc2e6fc['error']){return logger['error'](_0x78c7('0x2e'),JSON[_0x78c7('0x28')](_0xc2e6fc));}return logger[_0x78c7('0xa')](_0x78c7('0x2f'));})['catch'](function(_0x26988c){return logger['error'](_0x78c7('0x2e'),JSON['stringify'](_0x26988c));});}};}function handleError(){return function(_0x4c0eee){return logger[_0x78c7('0x30')](JSON[_0x78c7('0x28')](_0x4c0eee));};}function handleResult(_0x5c864d){return function(_0x5a11a3){logger[_0x78c7('0xa')](_0x78c7('0x31'),JSON[_0x78c7('0x28')](_0x5a11a3));if(_0x5c864d[_0x78c7('0xc')]&&_0x5c864d[_0x78c7('0xc')][_0x78c7('0xe')]&&!_[_0x78c7('0x32')](_0x5c864d[_0x78c7('0xb')])){setTimeout(handleSendEmail(_0x5c864d,_0x5a11a3),0x3c*0x3e8);}};}function handleJob(_0x8d12df){return function(){try{if(_[_0x78c7('0x32')](_0x8d12df['subtractNumber'])){return logger[_0x78c7('0xa')](_0x78c7('0x33'));}if(_[_0x78c7('0x32')](_0x8d12df[_0x78c7('0x1a')])){return logger['info']('subtractUnit\x20null\x20or\x20undefined');}var _0xc3e748={'startDate':moment()['subtract'](_0x8d12df[_0x78c7('0x34')],_0x8d12df['subtractUnit'])[_0x78c7('0x15')](_0x78c7('0x35')),'endDate':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'type':_0x78c7('0x36'),'output':_0x8d12df[_0x78c7('0x37')],'name':_0x8d12df['name']};if(!_['isNil'](_0x8d12df[_0x78c7('0x38')])){logger[_0x78c7('0xa')](_0x78c7('0x39'),_0x8d12df[_0x78c7('0x38')]);return analyticDefaultReportController[_0x78c7('0x3a')]({'id':_0x8d12df[_0x78c7('0x38')]},_0xc3e748)['then'](handleResult(_0x8d12df))[_0x78c7('0x3b')](handleError());}if(!_[_0x78c7('0x32')](_0x8d12df[_0x78c7('0x3c')])){logger[_0x78c7('0xa')](_0x78c7('0x3d'),_0x8d12df['CustomReportId']);return analyticCustomReportController['runReport']({'id':_0x8d12df['CustomReportId']},_0xc3e748)[_0x78c7('0x2d')](handleResult(_0x8d12df))[_0x78c7('0x3b')](handleError());}}catch(_0x2a68d8){logger[_0x78c7('0x30')](JSON[_0x78c7('0x28')](_0x2a68d8));}return logger['info'](_0x78c7('0x3e'));};}function getJobs(_0x3d8706){var _0x3bf682={};if(_0x3d8706){_0x3bf682['id']=_0x3d8706;}return db[_0x78c7('0x3f')][_0x78c7('0x40')]({'where':_0x3bf682,'include':[{'model':db[_0x78c7('0xc')],'attributes':['id','name',_0x78c7('0xb')],'include':[{'model':db[_0x78c7('0x41')],'as':_0x78c7('0xe')}]}]})[_0x78c7('0x2d')](function(_0x50e8bc){var _0x334e69=_[_0x78c7('0x42')](manager[_0x78c7('0x43')]);var _0x2cc477=_['map'](_0x50e8bc,function(_0x3f07f0){return _0x3f07f0['id'][_0x78c7('0x44')]();});var _0x43500e=_[_0x78c7('0x45')](_0x50e8bc,function(_0x3e1e02){return _0x3e1e02['id'][_0x78c7('0x44')]();});var _0x54108f=_0x3d8706?_0x2cc477:_[_0x78c7('0x46')](_0x2cc477,_0x334e69);var _0x5aa5ff=_[_0x78c7('0x47')](_0x2cc477,_0x334e69);var _0x51d1dc=_[_0x78c7('0x46')](_0x334e69,_0x2cc477);var _0x29e42e;var _0x39cab6;for(_0x29e42e=0x0;_0x29e42e<_0x51d1dc['length']&&!_0x3d8706;_0x29e42e+=0x1){_0x39cab6=_0x51d1dc[_0x29e42e]['toString']();if(manager['exists'](_0x39cab6)){manager['stop'](_0x39cab6);manager[_0x78c7('0x48')](_0x39cab6);logger[_0x78c7('0xa')](_0x78c7('0x49'),_0x39cab6);}}logger[_0x78c7('0xa')](_0x78c7('0x4a'),JSON[_0x78c7('0x28')](_0x54108f));for(_0x29e42e=0x0;_0x29e42e<_0x54108f['length'];_0x29e42e+=0x1){_0x39cab6=_0x54108f[_0x29e42e][_0x78c7('0x44')]();logger[_0x78c7('0xa')](_0x78c7('0x4b'),_0x39cab6);if(_0x3d8706){logger['info']('my\x20id',_0x3d8706);logger[_0x78c7('0xa')](JSON['stringify'](_0x43500e[_0x39cab6]));BPromise[_0x78c7('0x4c')]()[_0x78c7('0x2d')](handleJob(_0x43500e[_0x39cab6]));logger[_0x78c7('0xa')](_0x78c7('0x4d'),_0x43500e[_0x39cab6]['name'],_0x43500e[_0x39cab6][_0x78c7('0x4e')]);}else if(_0x43500e[_0x39cab6][_0x78c7('0x4e')]&&_0x43500e[_0x39cab6][_0x78c7('0x4f')]&&moment()['isBetween'](_0x43500e[_0x39cab6]['startAt'],_0x43500e[_0x39cab6][_0x78c7('0x50')])){manager[_0x78c7('0x51')](_0x39cab6,_0x43500e[_0x39cab6]['cron'],handleJob(_0x43500e[_0x39cab6]));manager[_0x78c7('0x52')](_0x39cab6);logger[_0x78c7('0xa')](_0x78c7('0x53'),_0x43500e[_0x39cab6][_0x78c7('0x17')],_0x43500e[_0x39cab6][_0x78c7('0x4e')]);}else if(manager[_0x78c7('0x54')](_0x39cab6)){manager[_0x78c7('0x55')](_0x39cab6);manager[_0x78c7('0x48')](_0x39cab6);logger[_0x78c7('0xa')](_0x78c7('0x56'),_0x43500e[_0x39cab6]['name'],_0x43500e[_0x39cab6][_0x78c7('0x4e')]);}}for(_0x29e42e=0x0,_0x39cab6;_0x29e42e<_0x5aa5ff['length']&&!_0x3d8706;_0x29e42e+=0x1){_0x39cab6=_0x5aa5ff[_0x29e42e]['toString']();if(manager[_0x78c7('0x54')](_0x39cab6)){if(_0x43500e[_0x39cab6]['cron']&&_0x43500e[_0x39cab6]['active']&&moment()['isBetween'](_0x43500e[_0x39cab6]['startAt'],_0x43500e[_0x39cab6][_0x78c7('0x50')])){manager[_0x78c7('0x57')](_0x39cab6,_0x43500e[_0x39cab6][_0x78c7('0x4e')],handleJob(_0x43500e[_0x39cab6]));logger['info'](_0x78c7('0x58'),_0x43500e[_0x39cab6]['name'],_0x43500e[_0x39cab6][_0x78c7('0x4e')]);}else{manager['stop'](_0x39cab6);manager['deleteJob'](_0x39cab6);logger['info']('stop\x20cron',_0x43500e[_0x39cab6][_0x78c7('0x17')],_0x43500e[_0x39cab6][_0x78c7('0x4e')]);}}}})[_0x78c7('0x3b')](function(_0x480ac9){logger[_0x78c7('0x30')](JSON[_0x78c7('0x28')](_0x480ac9));});}exports[_0x78c7('0x59')]=function(_0x477662){return getJobs(_0x477662);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};