Built motion from commit (unavailable).|2.5.31
[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 _0x0715=['Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','request','then','error','error\x20mail','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','runReport','catch','CustomReportId','no\x20report\x20id','Schedule','findAll','MailServerOut','keys','jobs','map','toString','difference','intersection','length','exists','deleteJob','delete\x20cron','toRun','index','my\x20id','resolve','run\x20job','cron','isBetween','startAt','endAt','stop\x20cron','update','update\x20cron','stop','run','lodash','moment','cron-job-manager','jayson/promise','bluebird','schedule','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','host','port','secure','authentication','auth','user','format','\x22%s\x22\x20<%s>','bcc','name','subtractNumber','subtractUnit','savename','%s.%s','basename','extname','zip','join','existsSync','status','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','Sent'];(function(_0x4a9beb,_0x159482){var _0x2d4c58=function(_0x28dabf){while(--_0x28dabf){_0x4a9beb['push'](_0x4a9beb['shift']());}};_0x2d4c58(++_0x159482);}(_0x0715,0x186));var _0x5071=function(_0x379f2d,_0x280def){_0x379f2d=_0x379f2d-0x0;var _0x18156e=_0x0715[_0x379f2d];return _0x18156e;};'use strict';var fs=require('fs');var util=require('util');var path=require('path');var _=require(_0x5071('0x0'));var moment=require(_0x5071('0x1'));var CronJobManager=require(_0x5071('0x2'));var jayson=require(_0x5071('0x3'));var BPromise=require(_0x5071('0x4'));var logger=require('../logger')(_0x5071('0x5'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0x5071('0x6'));var analyticDefaultReportController=require(_0x5071('0x7'));var client=jayson['client'][_0x5071('0x8')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x46732e,_0x3233c0){return function(){logger[_0x5071('0x9')](_0x5071('0xa'),_0x46732e[_0x5071('0xb')]);var _0x4ab3b4=!![];var _0x259435={'tls':{'rejectUnauthorized':![]}};if(_0x46732e[_0x5071('0xc')][_0x5071('0xd')]['service']){_0x259435['service']=_0x46732e[_0x5071('0xc')][_0x5071('0xd')]['service'];}else{_0x259435['host']=_0x46732e[_0x5071('0xc')][_0x5071('0xd')][_0x5071('0xe')];_0x259435[_0x5071('0xf')]=_0x46732e[_0x5071('0xc')][_0x5071('0xd')][_0x5071('0xf')];_0x259435[_0x5071('0x10')]=_0x46732e[_0x5071('0xc')][_0x5071('0xd')][_0x5071('0x10')];}if(_0x46732e[_0x5071('0xc')]['Smtp'][_0x5071('0x11')]){_0x259435[_0x5071('0x12')]={'user':_0x46732e['MailAccount']['Smtp'][_0x5071('0x13')],'pass':_0x46732e[_0x5071('0xc')][_0x5071('0xd')]['pass']};}var _0x344f5b={'account':_0x259435,'message':{'from':util[_0x5071('0x14')](_0x5071('0x15'),_0x46732e[_0x5071('0xc')]['name'],_0x46732e[_0x5071('0xc')][_0x5071('0xb')]||_0x46732e[_0x5071('0xc')][_0x5071('0xd')][_0x5071('0x13')]),'to':_0x46732e[_0x5071('0xb')],'cc':_0x46732e['cc'],'bcc':_0x46732e[_0x5071('0x16')],'subject':util['format']('Report\x20%s\x20last\x20%s\x20%s',_0x3233c0[_0x5071('0x17')],_0x46732e[_0x5071('0x18')],_0x46732e[_0x5071('0x19')])}};var _0x416056=path['join'](__dirname,'../../files/reports');var _0x32b799=_0x3233c0[_0x5071('0x1a')];var _0x21bcab=util['format'](_0x5071('0x1b'),path[_0x5071('0x1c')](_0x3233c0['savename'],path[_0x5071('0x1d')](_0x3233c0['savename'])),_0x5071('0x1e'));var _0x39e5f4=path[_0x5071('0x1f')](_0x416056,_0x32b799);var _0xab1f64=path['join'](_0x416056,_0x21bcab);if(fs[_0x5071('0x20')](_0x39e5f4)){_0x3233c0[_0x5071('0x21')]='Sent';_0x344f5b[_0x5071('0x22')][_0x5071('0x23')]=[{'filename':_0x32b799,'path':_0x39e5f4}];_0x344f5b[_0x5071('0x22')][_0x5071('0x24')]=util[_0x5071('0x14')](_0x5071('0x25'),JSON[_0x5071('0x26')](_0x3233c0,null,0x2));}else if(fs[_0x5071('0x20')](_0xab1f64)){_0x3233c0[_0x5071('0x21')]=_0x5071('0x27');_0x344f5b['message']['attachments']=[{'filename':_0x21bcab,'path':_0xab1f64}];}else{_0x344f5b[_0x5071('0x22')]['text']=_0x5071('0x28');if(!_0x46732e[_0x5071('0x29')]){_0x4ab3b4=![];logger[_0x5071('0x9')]('empty\x20file,\x20email\x20not\x20sent');}}if(_0x4ab3b4){return client[_0x5071('0x2a')]('SendMail',_0x344f5b)[_0x5071('0x2b')](function(_0x2e2e38){if(_0x2e2e38[_0x5071('0x2c')]){return logger['error'](_0x5071('0x2d'),JSON['stringify'](_0x2e2e38));}return logger[_0x5071('0x9')]('email\x20sent');})['catch'](function(_0x12d46c){return logger[_0x5071('0x2c')](_0x5071('0x2d'),JSON[_0x5071('0x26')](_0x12d46c));});}};}function handleError(){return function(_0x4ed649){return logger[_0x5071('0x2c')](JSON[_0x5071('0x26')](_0x4ed649));};}function handleResult(_0x4e82ea){return function(_0x18d8fe){logger[_0x5071('0x9')](_0x5071('0x2e'),JSON[_0x5071('0x26')](_0x18d8fe));if(_0x4e82ea['MailAccount']&&_0x4e82ea[_0x5071('0xc')]['Smtp']&&!_[_0x5071('0x2f')](_0x4e82ea[_0x5071('0xb')])){setTimeout(handleSendEmail(_0x4e82ea,_0x18d8fe),0x3c*0x3e8);}};}function handleJob(_0x941bdf){return function(){try{if(_[_0x5071('0x2f')](_0x941bdf[_0x5071('0x18')])){return logger['info'](_0x5071('0x30'));}if(_[_0x5071('0x2f')](_0x941bdf['subtractUnit'])){return logger['info'](_0x5071('0x31'));}var _0x14a60e={'startDate':moment()[_0x5071('0x32')](_0x941bdf[_0x5071('0x18')],_0x941bdf[_0x5071('0x19')])[_0x5071('0x14')](_0x5071('0x33')),'endDate':moment()[_0x5071('0x14')](_0x5071('0x33')),'type':_0x5071('0x34'),'output':_0x941bdf[_0x5071('0x35')],'name':_0x941bdf['name']};if(!_['isNil'](_0x941bdf[_0x5071('0x36')])){logger[_0x5071('0x9')]('exec\x20defaul\x20report\x20id:%s',_0x941bdf[_0x5071('0x36')]);return analyticDefaultReportController[_0x5071('0x37')]({'id':_0x941bdf[_0x5071('0x36')]},_0x14a60e)[_0x5071('0x2b')](handleResult(_0x941bdf))[_0x5071('0x38')](handleError());}if(!_['isNil'](_0x941bdf[_0x5071('0x39')])){logger[_0x5071('0x9')]('exec\x20custom\x20report\x20id:%s',_0x941bdf[_0x5071('0x39')]);return analyticCustomReportController[_0x5071('0x37')]({'id':_0x941bdf[_0x5071('0x39')]},_0x14a60e)['then'](handleResult(_0x941bdf))[_0x5071('0x38')](handleError());}}catch(_0x5b8f8e){logger[_0x5071('0x2c')](JSON['stringify'](_0x5b8f8e));}return logger['info'](_0x5071('0x3a'));};}function getJobs(_0x16b605){var _0x3aaeaf={};if(_0x16b605){_0x3aaeaf['id']=_0x16b605;}return db[_0x5071('0x3b')][_0x5071('0x3c')]({'where':_0x3aaeaf,'include':[{'model':db[_0x5071('0xc')],'attributes':['id','name',_0x5071('0xb')],'include':[{'model':db[_0x5071('0x3d')],'as':_0x5071('0xd')}]}]})[_0x5071('0x2b')](function(_0x4a0577){var _0x285a9c=_[_0x5071('0x3e')](manager[_0x5071('0x3f')]);var _0x3f2b91=_[_0x5071('0x40')](_0x4a0577,function(_0x161282){return _0x161282['id']['toString']();});var _0xaff514=_['keyBy'](_0x4a0577,function(_0x6e1159){return _0x6e1159['id'][_0x5071('0x41')]();});var _0x4be385=_0x16b605?_0x3f2b91:_[_0x5071('0x42')](_0x3f2b91,_0x285a9c);var _0x2f277c=_[_0x5071('0x43')](_0x3f2b91,_0x285a9c);var _0x171cd3=_[_0x5071('0x42')](_0x285a9c,_0x3f2b91);var _0x3eaef8;var _0x41af14;for(_0x3eaef8=0x0;_0x3eaef8<_0x171cd3[_0x5071('0x44')]&&!_0x16b605;_0x3eaef8+=0x1){_0x41af14=_0x171cd3[_0x3eaef8][_0x5071('0x41')]();if(manager[_0x5071('0x45')](_0x41af14)){manager['stop'](_0x41af14);manager[_0x5071('0x46')](_0x41af14);logger[_0x5071('0x9')](_0x5071('0x47'),_0x41af14);}}logger['info'](_0x5071('0x48'),JSON[_0x5071('0x26')](_0x4be385));for(_0x3eaef8=0x0;_0x3eaef8<_0x4be385[_0x5071('0x44')];_0x3eaef8+=0x1){_0x41af14=_0x4be385[_0x3eaef8][_0x5071('0x41')]();logger['info'](_0x5071('0x49'),_0x41af14);if(_0x16b605){logger['info'](_0x5071('0x4a'),_0x16b605);logger[_0x5071('0x9')](JSON['stringify'](_0xaff514[_0x41af14]));BPromise[_0x5071('0x4b')]()[_0x5071('0x2b')](handleJob(_0xaff514[_0x41af14]));logger[_0x5071('0x9')](_0x5071('0x4c'),_0xaff514[_0x41af14][_0x5071('0x17')],_0xaff514[_0x41af14][_0x5071('0x4d')]);}else if(_0xaff514[_0x41af14][_0x5071('0x4d')]&&_0xaff514[_0x41af14]['active']&&moment()[_0x5071('0x4e')](_0xaff514[_0x41af14][_0x5071('0x4f')],_0xaff514[_0x41af14][_0x5071('0x50')])){manager['add'](_0x41af14,_0xaff514[_0x41af14][_0x5071('0x4d')],handleJob(_0xaff514[_0x41af14]));manager['start'](_0x41af14);logger['info']('add\x20cron',_0xaff514[_0x41af14]['name'],_0xaff514[_0x41af14]['cron']);}else if(manager[_0x5071('0x45')](_0x41af14)){manager['stop'](_0x41af14);manager[_0x5071('0x46')](_0x41af14);logger[_0x5071('0x9')](_0x5071('0x51'),_0xaff514[_0x41af14][_0x5071('0x17')],_0xaff514[_0x41af14]['cron']);}}for(_0x3eaef8=0x0,_0x41af14;_0x3eaef8<_0x2f277c[_0x5071('0x44')]&&!_0x16b605;_0x3eaef8+=0x1){_0x41af14=_0x2f277c[_0x3eaef8][_0x5071('0x41')]();if(manager[_0x5071('0x45')](_0x41af14)){if(_0xaff514[_0x41af14][_0x5071('0x4d')]&&_0xaff514[_0x41af14]['active']&&moment()[_0x5071('0x4e')](_0xaff514[_0x41af14][_0x5071('0x4f')],_0xaff514[_0x41af14]['endAt'])){manager[_0x5071('0x52')](_0x41af14,_0xaff514[_0x41af14][_0x5071('0x4d')],handleJob(_0xaff514[_0x41af14]));logger[_0x5071('0x9')](_0x5071('0x53'),_0xaff514[_0x41af14][_0x5071('0x17')],_0xaff514[_0x41af14][_0x5071('0x4d')]);}else{manager[_0x5071('0x54')](_0x41af14);manager[_0x5071('0x46')](_0x41af14);logger[_0x5071('0x9')]('stop\x20cron',_0xaff514[_0x41af14][_0x5071('0x17')],_0xaff514[_0x41af14][_0x5071('0x4d')]);}}}})['catch'](function(_0x593aca){logger[_0x5071('0x2c')](JSON[_0x5071('0x26')](_0x593aca));});}exports[_0x5071('0x55')]=function(_0x37bb34){return getJobs(_0x37bb34);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};