Built motion from commit (unavailable).|2.5.17
[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 _0xf940=['CustomReportId','exec\x20custom\x20report\x20id:%s','catch','no\x20report\x20id','Schedule','findAll','keys','map','toString','difference','intersection','length','exists','stop','delete\x20cron','index','my\x20id','resolve','run\x20job','cron','active','isBetween','startAt','endAt','start','add\x20cron','deleteJob','stop\x20cron','update\x20cron','run','util','path','lodash','moment','cron-job-manager','../logger','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','authentication','auth','user','pass','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','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','status','sendIfEmpty','info','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','error\x20mail','email\x20sent','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','exec\x20defaul\x20report\x20id:%s','DefaultReportId','runReport'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xf940,0x18e));var _0x0f94=function(_0xc95fe9,_0x36bcb1){_0xc95fe9=_0xc95fe9-0x0;var _0x3761dd=_0xf940[_0xc95fe9];return _0x3761dd;};'use strict';var fs=require('fs');var util=require(_0x0f94('0x0'));var path=require(_0x0f94('0x1'));var _=require(_0x0f94('0x2'));var moment=require(_0x0f94('0x3'));var CronJobManager=require(_0x0f94('0x4'));var jayson=require('jayson/promise');var BPromise=require('bluebird');var logger=require(_0x0f94('0x5'))('schedule');var db=require('../../mysqldb')['db'];var analyticCustomReportController=require(_0x0f94('0x6'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x0f94('0x7')][_0x0f94('0x8')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x315a6a,_0x406863){return function(){logger['info'](_0x0f94('0x9'),_0x315a6a[_0x0f94('0xa')]);var _0x1bb124=!![];var _0x13a2d7={'tls':{'rejectUnauthorized':![]}};if(_0x315a6a[_0x0f94('0xb')][_0x0f94('0xc')][_0x0f94('0xd')]){_0x13a2d7[_0x0f94('0xd')]=_0x315a6a[_0x0f94('0xb')]['Smtp'][_0x0f94('0xd')];}else{_0x13a2d7[_0x0f94('0xe')]=_0x315a6a[_0x0f94('0xb')][_0x0f94('0xc')][_0x0f94('0xe')];_0x13a2d7[_0x0f94('0xf')]=_0x315a6a[_0x0f94('0xb')][_0x0f94('0xc')][_0x0f94('0xf')];_0x13a2d7[_0x0f94('0x10')]=_0x315a6a[_0x0f94('0xb')][_0x0f94('0xc')][_0x0f94('0x10')];}if(_0x315a6a[_0x0f94('0xb')][_0x0f94('0xc')][_0x0f94('0x11')]){_0x13a2d7[_0x0f94('0x12')]={'user':_0x315a6a['MailAccount'][_0x0f94('0xc')][_0x0f94('0x13')],'pass':_0x315a6a[_0x0f94('0xb')][_0x0f94('0xc')][_0x0f94('0x14')]};}var _0x7de4c9={'account':_0x13a2d7,'message':{'from':util[_0x0f94('0x15')](_0x0f94('0x16'),_0x315a6a[_0x0f94('0xb')][_0x0f94('0x17')],_0x315a6a[_0x0f94('0xb')][_0x0f94('0xa')]||_0x315a6a['MailAccount'][_0x0f94('0xc')][_0x0f94('0x13')]),'to':_0x315a6a[_0x0f94('0xa')],'cc':_0x315a6a['cc'],'bcc':_0x315a6a[_0x0f94('0x18')],'subject':util[_0x0f94('0x15')](_0x0f94('0x19'),_0x406863[_0x0f94('0x17')],_0x315a6a[_0x0f94('0x1a')],_0x315a6a[_0x0f94('0x1b')])}};var _0x20f546=path[_0x0f94('0x1c')](__dirname,_0x0f94('0x1d'));var _0x3a75fe=_0x406863[_0x0f94('0x1e')];var _0x579f18=util['format'](_0x0f94('0x1f'),path[_0x0f94('0x20')](_0x406863[_0x0f94('0x1e')],path[_0x0f94('0x21')](_0x406863[_0x0f94('0x1e')])),_0x0f94('0x22'));var _0x3011c8=path['join'](_0x20f546,_0x3a75fe);var _0x4534a0=path[_0x0f94('0x1c')](_0x20f546,_0x579f18);if(fs['existsSync'](_0x3011c8)){_0x406863['status']=_0x0f94('0x23');_0x7de4c9[_0x0f94('0x24')][_0x0f94('0x25')]=[{'filename':_0x3a75fe,'path':_0x3011c8}];_0x7de4c9[_0x0f94('0x24')][_0x0f94('0x26')]=util[_0x0f94('0x15')](_0x0f94('0x27'),JSON[_0x0f94('0x28')](_0x406863,null,0x2));}else if(fs['existsSync'](_0x4534a0)){_0x406863[_0x0f94('0x29')]=_0x0f94('0x23');_0x7de4c9[_0x0f94('0x24')]['attachments']=[{'filename':_0x579f18,'path':_0x4534a0}];}else{_0x7de4c9['message'][_0x0f94('0x26')]='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x315a6a[_0x0f94('0x2a')]){_0x1bb124=![];logger[_0x0f94('0x2b')](_0x0f94('0x2c'));}}if(_0x1bb124){return client[_0x0f94('0x2d')](_0x0f94('0x2e'),_0x7de4c9)[_0x0f94('0x2f')](function(_0x1cc1a9){if(_0x1cc1a9[_0x0f94('0x30')]){return logger[_0x0f94('0x30')](_0x0f94('0x31'),JSON[_0x0f94('0x28')](_0x1cc1a9));}return logger[_0x0f94('0x2b')](_0x0f94('0x32'));})['catch'](function(_0x48c57d){return logger[_0x0f94('0x30')](_0x0f94('0x31'),JSON['stringify'](_0x48c57d));});}};}function handleError(){return function(_0x3d3f5d){return logger[_0x0f94('0x30')](JSON[_0x0f94('0x28')](_0x3d3f5d));};}function handleResult(_0x47ce35){return function(_0x383ded){logger[_0x0f94('0x2b')](_0x0f94('0x33'),JSON[_0x0f94('0x28')](_0x383ded));if(_0x47ce35[_0x0f94('0xb')]&&_0x47ce35[_0x0f94('0xb')]['Smtp']&&!_[_0x0f94('0x34')](_0x47ce35['email'])){setTimeout(handleSendEmail(_0x47ce35,_0x383ded),0x3c*0x3e8);}};}function handleJob(_0x3997dd){return function(){try{if(_['isNil'](_0x3997dd[_0x0f94('0x1a')])){return logger['info'](_0x0f94('0x35'));}if(_[_0x0f94('0x34')](_0x3997dd['subtractUnit'])){return logger[_0x0f94('0x2b')](_0x0f94('0x36'));}var _0x58c0e2={'startDate':moment()[_0x0f94('0x37')](_0x3997dd[_0x0f94('0x1a')],_0x3997dd[_0x0f94('0x1b')])[_0x0f94('0x15')](_0x0f94('0x38')),'endDate':moment()[_0x0f94('0x15')](_0x0f94('0x38')),'type':_0x0f94('0x39'),'output':_0x3997dd[_0x0f94('0x3a')],'name':_0x3997dd[_0x0f94('0x17')]};if(!_['isNil'](_0x3997dd['DefaultReportId'])){logger[_0x0f94('0x2b')](_0x0f94('0x3b'),_0x3997dd[_0x0f94('0x3c')]);return analyticDefaultReportController[_0x0f94('0x3d')]({'id':_0x3997dd[_0x0f94('0x3c')]},_0x58c0e2)[_0x0f94('0x2f')](handleResult(_0x3997dd))['catch'](handleError());}if(!_[_0x0f94('0x34')](_0x3997dd[_0x0f94('0x3e')])){logger[_0x0f94('0x2b')](_0x0f94('0x3f'),_0x3997dd['CustomReportId']);return analyticCustomReportController['runReport']({'id':_0x3997dd['CustomReportId']},_0x58c0e2)[_0x0f94('0x2f')](handleResult(_0x3997dd))[_0x0f94('0x40')](handleError());}}catch(_0x517d1f){logger[_0x0f94('0x30')](JSON['stringify'](_0x517d1f));}return logger[_0x0f94('0x2b')](_0x0f94('0x41'));};}function getJobs(_0x5541c0){var _0x29f514={};if(_0x5541c0){_0x29f514['id']=_0x5541c0;}return db[_0x0f94('0x42')][_0x0f94('0x43')]({'where':_0x29f514,'include':[{'model':db[_0x0f94('0xb')],'attributes':['id','name',_0x0f94('0xa')],'include':[{'model':db['MailServerOut'],'as':_0x0f94('0xc')}]}]})['then'](function(_0xcb5624){var _0x3304bc=_[_0x0f94('0x44')](manager['jobs']);var _0x5e00b=_[_0x0f94('0x45')](_0xcb5624,function(_0x4b2af1){return _0x4b2af1['id'][_0x0f94('0x46')]();});var _0x5af763=_['keyBy'](_0xcb5624,function(_0xa8f78c){return _0xa8f78c['id'][_0x0f94('0x46')]();});var _0x28ec54=_0x5541c0?_0x5e00b:_[_0x0f94('0x47')](_0x5e00b,_0x3304bc);var _0x1064c2=_[_0x0f94('0x48')](_0x5e00b,_0x3304bc);var _0x109e83=_['difference'](_0x3304bc,_0x5e00b);var _0x1ea4b1;var _0x239782;for(_0x1ea4b1=0x0;_0x1ea4b1<_0x109e83[_0x0f94('0x49')]&&!_0x5541c0;_0x1ea4b1+=0x1){_0x239782=_0x109e83[_0x1ea4b1][_0x0f94('0x46')]();if(manager[_0x0f94('0x4a')](_0x239782)){manager[_0x0f94('0x4b')](_0x239782);manager['deleteJob'](_0x239782);logger[_0x0f94('0x2b')](_0x0f94('0x4c'),_0x239782);}}logger[_0x0f94('0x2b')]('toRun',JSON[_0x0f94('0x28')](_0x28ec54));for(_0x1ea4b1=0x0;_0x1ea4b1<_0x28ec54[_0x0f94('0x49')];_0x1ea4b1+=0x1){_0x239782=_0x28ec54[_0x1ea4b1][_0x0f94('0x46')]();logger[_0x0f94('0x2b')](_0x0f94('0x4d'),_0x239782);if(_0x5541c0){logger[_0x0f94('0x2b')](_0x0f94('0x4e'),_0x5541c0);logger[_0x0f94('0x2b')](JSON[_0x0f94('0x28')](_0x5af763[_0x239782]));BPromise[_0x0f94('0x4f')]()[_0x0f94('0x2f')](handleJob(_0x5af763[_0x239782]));logger[_0x0f94('0x2b')](_0x0f94('0x50'),_0x5af763[_0x239782][_0x0f94('0x17')],_0x5af763[_0x239782][_0x0f94('0x51')]);}else if(_0x5af763[_0x239782][_0x0f94('0x51')]&&_0x5af763[_0x239782][_0x0f94('0x52')]&&moment()[_0x0f94('0x53')](_0x5af763[_0x239782][_0x0f94('0x54')],_0x5af763[_0x239782][_0x0f94('0x55')])){manager['add'](_0x239782,_0x5af763[_0x239782]['cron'],handleJob(_0x5af763[_0x239782]));manager[_0x0f94('0x56')](_0x239782);logger[_0x0f94('0x2b')](_0x0f94('0x57'),_0x5af763[_0x239782][_0x0f94('0x17')],_0x5af763[_0x239782][_0x0f94('0x51')]);}else if(manager[_0x0f94('0x4a')](_0x239782)){manager[_0x0f94('0x4b')](_0x239782);manager[_0x0f94('0x58')](_0x239782);logger[_0x0f94('0x2b')](_0x0f94('0x59'),_0x5af763[_0x239782][_0x0f94('0x17')],_0x5af763[_0x239782][_0x0f94('0x51')]);}}for(_0x1ea4b1=0x0,_0x239782;_0x1ea4b1<_0x1064c2[_0x0f94('0x49')]&&!_0x5541c0;_0x1ea4b1+=0x1){_0x239782=_0x1064c2[_0x1ea4b1][_0x0f94('0x46')]();if(manager[_0x0f94('0x4a')](_0x239782)){if(_0x5af763[_0x239782][_0x0f94('0x51')]&&_0x5af763[_0x239782][_0x0f94('0x52')]&&moment()[_0x0f94('0x53')](_0x5af763[_0x239782]['startAt'],_0x5af763[_0x239782][_0x0f94('0x55')])){manager['update'](_0x239782,_0x5af763[_0x239782]['cron'],handleJob(_0x5af763[_0x239782]));logger[_0x0f94('0x2b')](_0x0f94('0x5a'),_0x5af763[_0x239782][_0x0f94('0x17')],_0x5af763[_0x239782]['cron']);}else{manager[_0x0f94('0x4b')](_0x239782);manager[_0x0f94('0x58')](_0x239782);logger['info'](_0x0f94('0x59'),_0x5af763[_0x239782][_0x0f94('0x17')],_0x5af763[_0x239782][_0x0f94('0x51')]);}}}})[_0x0f94('0x40')](function(_0x5b7e2f){logger[_0x0f94('0x30')](JSON[_0x0f94('0x28')](_0x5b7e2f));});}exports[_0x0f94('0x5b')]=function(_0x1447c7){return getJobs(_0x1447c7);};exports[_0x0f94('0x56')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};