Built motion from commit 9e1399f3.|2.5.37
[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 _0xd37f=['request','SendMail','then','error\x20mail','email\x20sent','catch','error','data','isNil','subtractNumber','subtractNumber\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','exec\x20custom\x20report\x20id:%s','CustomReportId','runReport','Schedule','findAll','MailServerOut','keys','jobs','toString','keyBy','difference','intersection','length','exists','stop','deleteJob','index','my\x20id','resolve','run\x20job','cron','startAt','endAt','add','start','add\x20cron','active','isBetween','update','update\x20cron','stop\x20cron','run','util','path','moment','cron-job-manager','bluebird','../logger','schedule','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','MailAccount','Smtp','service','host','port','secure','authentication','auth','user','pass','name','email','bcc','format','Report\x20%s\x20last\x20%s\x20%s','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','status','Sent','message','attachments','text','stringify','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','info','empty\x20file,\x20email\x20not\x20sent'];(function(_0x58d3cc,_0x515d61){var _0x5c86eb=function(_0x3ba16b){while(--_0x3ba16b){_0x58d3cc['push'](_0x58d3cc['shift']());}};_0x5c86eb(++_0x515d61);}(_0xd37f,0x1e8));var _0xfd37=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0xd37f[_0xa1e3e3];return _0xc980e9;};'use strict';var fs=require('fs');var util=require(_0xfd37('0x0'));var path=require(_0xfd37('0x1'));var _=require('lodash');var moment=require(_0xfd37('0x2'));var CronJobManager=require(_0xfd37('0x3'));var jayson=require('jayson/promise');var BPromise=require(_0xfd37('0x4'));var logger=require(_0xfd37('0x5'))(_0xfd37('0x6'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0xfd37('0x7'));var client=jayson['client'][_0xfd37('0x8')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x10acd0,_0x4dab20){return function(){logger['info']('Try\x20to\x20send\x20a\x20mail\x20to',_0x10acd0['email']);var _0x1f6628=!![];var _0x39b198={'tls':{'rejectUnauthorized':![]}};if(_0x10acd0[_0xfd37('0x9')][_0xfd37('0xa')]['service']){_0x39b198[_0xfd37('0xb')]=_0x10acd0[_0xfd37('0x9')][_0xfd37('0xa')][_0xfd37('0xb')];}else{_0x39b198['host']=_0x10acd0[_0xfd37('0x9')][_0xfd37('0xa')][_0xfd37('0xc')];_0x39b198[_0xfd37('0xd')]=_0x10acd0[_0xfd37('0x9')][_0xfd37('0xa')][_0xfd37('0xd')];_0x39b198[_0xfd37('0xe')]=_0x10acd0[_0xfd37('0x9')]['Smtp'][_0xfd37('0xe')];}if(_0x10acd0[_0xfd37('0x9')][_0xfd37('0xa')][_0xfd37('0xf')]){_0x39b198[_0xfd37('0x10')]={'user':_0x10acd0[_0xfd37('0x9')][_0xfd37('0xa')][_0xfd37('0x11')],'pass':_0x10acd0[_0xfd37('0x9')][_0xfd37('0xa')][_0xfd37('0x12')]};}var _0x1b8b90={'account':_0x39b198,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0x10acd0['MailAccount'][_0xfd37('0x13')],_0x10acd0[_0xfd37('0x9')][_0xfd37('0x14')]||_0x10acd0[_0xfd37('0x9')][_0xfd37('0xa')][_0xfd37('0x11')]),'to':_0x10acd0[_0xfd37('0x14')],'cc':_0x10acd0['cc'],'bcc':_0x10acd0[_0xfd37('0x15')],'subject':util[_0xfd37('0x16')](_0xfd37('0x17'),_0x4dab20[_0xfd37('0x13')],_0x10acd0['subtractNumber'],_0x10acd0[_0xfd37('0x18')])}};var _0x3c85fc=path[_0xfd37('0x19')](__dirname,_0xfd37('0x1a'));var _0x38fff5=_0x4dab20[_0xfd37('0x1b')];var _0xe0ae54=util[_0xfd37('0x16')](_0xfd37('0x1c'),path[_0xfd37('0x1d')](_0x4dab20[_0xfd37('0x1b')],path[_0xfd37('0x1e')](_0x4dab20[_0xfd37('0x1b')])),'zip');var _0x5e98ba=path[_0xfd37('0x19')](_0x3c85fc,_0x38fff5);var _0x513851=path[_0xfd37('0x19')](_0x3c85fc,_0xe0ae54);if(fs['existsSync'](_0x5e98ba)){_0x4dab20[_0xfd37('0x1f')]=_0xfd37('0x20');_0x1b8b90[_0xfd37('0x21')][_0xfd37('0x22')]=[{'filename':_0x38fff5,'path':_0x5e98ba}];_0x1b8b90['message'][_0xfd37('0x23')]=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[_0xfd37('0x24')](_0x4dab20,null,0x2));}else if(fs['existsSync'](_0x513851)){_0x4dab20[_0xfd37('0x1f')]=_0xfd37('0x20');_0x1b8b90[_0xfd37('0x21')][_0xfd37('0x22')]=[{'filename':_0xe0ae54,'path':_0x513851}];}else{_0x1b8b90['message']['text']=_0xfd37('0x25');if(!_0x10acd0['sendIfEmpty']){_0x1f6628=![];logger[_0xfd37('0x26')](_0xfd37('0x27'));}}if(_0x1f6628){return client[_0xfd37('0x28')](_0xfd37('0x29'),_0x1b8b90)[_0xfd37('0x2a')](function(_0x71ba11){if(_0x71ba11['error']){return logger['error'](_0xfd37('0x2b'),JSON['stringify'](_0x71ba11));}return logger['info'](_0xfd37('0x2c'));})[_0xfd37('0x2d')](function(_0x445926){return logger['error'](_0xfd37('0x2b'),JSON[_0xfd37('0x24')](_0x445926));});}};}function handleError(){return function(_0x16d8db){return logger[_0xfd37('0x2e')](JSON[_0xfd37('0x24')](_0x16d8db));};}function handleResult(_0x3c2737){return function(_0x4b3e5e){logger[_0xfd37('0x26')](_0xfd37('0x2f'),JSON['stringify'](_0x4b3e5e));if(_0x3c2737[_0xfd37('0x9')]&&_0x3c2737[_0xfd37('0x9')][_0xfd37('0xa')]&&!_[_0xfd37('0x30')](_0x3c2737[_0xfd37('0x14')])){setTimeout(handleSendEmail(_0x3c2737,_0x4b3e5e),0x3c*0x3e8);}};}function handleJob(_0x357db7){return function(){try{if(_[_0xfd37('0x30')](_0x357db7[_0xfd37('0x31')])){return logger['info'](_0xfd37('0x32'));}if(_[_0xfd37('0x30')](_0x357db7['subtractUnit'])){return logger[_0xfd37('0x26')]('subtractUnit\x20null\x20or\x20undefined');}var _0x10204a={'startDate':moment()[_0xfd37('0x33')](_0x357db7[_0xfd37('0x31')],_0x357db7[_0xfd37('0x18')])[_0xfd37('0x16')](_0xfd37('0x34')),'endDate':moment()['format'](_0xfd37('0x34')),'type':'scheduled','output':_0x357db7[_0xfd37('0x35')],'name':_0x357db7[_0xfd37('0x13')]};if(!_['isNil'](_0x357db7[_0xfd37('0x36')])){logger[_0xfd37('0x26')](_0xfd37('0x37'),_0x357db7[_0xfd37('0x36')]);return analyticDefaultReportController['runReport']({'id':_0x357db7[_0xfd37('0x36')]},_0x10204a)[_0xfd37('0x2a')](handleResult(_0x357db7))[_0xfd37('0x2d')](handleError());}if(!_['isNil'](_0x357db7['CustomReportId'])){logger[_0xfd37('0x26')](_0xfd37('0x38'),_0x357db7[_0xfd37('0x39')]);return analyticCustomReportController[_0xfd37('0x3a')]({'id':_0x357db7[_0xfd37('0x39')]},_0x10204a)[_0xfd37('0x2a')](handleResult(_0x357db7))[_0xfd37('0x2d')](handleError());}}catch(_0x41e484){logger[_0xfd37('0x2e')](JSON[_0xfd37('0x24')](_0x41e484));}return logger['info']('no\x20report\x20id');};}function getJobs(_0xdd663a){var _0x197c24={};if(_0xdd663a){_0x197c24['id']=_0xdd663a;}return db[_0xfd37('0x3b')][_0xfd37('0x3c')]({'where':_0x197c24,'include':[{'model':db[_0xfd37('0x9')],'attributes':['id','name',_0xfd37('0x14')],'include':[{'model':db[_0xfd37('0x3d')],'as':_0xfd37('0xa')}]}]})[_0xfd37('0x2a')](function(_0x4e2c4a){var _0x58dbfd=_[_0xfd37('0x3e')](manager[_0xfd37('0x3f')]);var _0x40582e=_['map'](_0x4e2c4a,function(_0x1b99ca){return _0x1b99ca['id'][_0xfd37('0x40')]();});var _0x41c539=_[_0xfd37('0x41')](_0x4e2c4a,function(_0x4cf6fc){return _0x4cf6fc['id'][_0xfd37('0x40')]();});var _0x482695=_0xdd663a?_0x40582e:_[_0xfd37('0x42')](_0x40582e,_0x58dbfd);var _0x154cc9=_[_0xfd37('0x43')](_0x40582e,_0x58dbfd);var _0x429702=_[_0xfd37('0x42')](_0x58dbfd,_0x40582e);var _0x12fb73;var _0x3ef5c8;for(_0x12fb73=0x0;_0x12fb73<_0x429702[_0xfd37('0x44')]&&!_0xdd663a;_0x12fb73+=0x1){_0x3ef5c8=_0x429702[_0x12fb73][_0xfd37('0x40')]();if(manager[_0xfd37('0x45')](_0x3ef5c8)){manager[_0xfd37('0x46')](_0x3ef5c8);manager[_0xfd37('0x47')](_0x3ef5c8);logger['info']('delete\x20cron',_0x3ef5c8);}}logger[_0xfd37('0x26')]('toRun',JSON['stringify'](_0x482695));for(_0x12fb73=0x0;_0x12fb73<_0x482695[_0xfd37('0x44')];_0x12fb73+=0x1){_0x3ef5c8=_0x482695[_0x12fb73][_0xfd37('0x40')]();logger[_0xfd37('0x26')](_0xfd37('0x48'),_0x3ef5c8);if(_0xdd663a){logger[_0xfd37('0x26')](_0xfd37('0x49'),_0xdd663a);logger['info'](JSON[_0xfd37('0x24')](_0x41c539[_0x3ef5c8]));BPromise[_0xfd37('0x4a')]()[_0xfd37('0x2a')](handleJob(_0x41c539[_0x3ef5c8]));logger[_0xfd37('0x26')](_0xfd37('0x4b'),_0x41c539[_0x3ef5c8][_0xfd37('0x13')],_0x41c539[_0x3ef5c8][_0xfd37('0x4c')]);}else if(_0x41c539[_0x3ef5c8]['cron']&&_0x41c539[_0x3ef5c8]['active']&&moment()['isBetween'](_0x41c539[_0x3ef5c8][_0xfd37('0x4d')],_0x41c539[_0x3ef5c8][_0xfd37('0x4e')])){manager[_0xfd37('0x4f')](_0x3ef5c8,_0x41c539[_0x3ef5c8][_0xfd37('0x4c')],handleJob(_0x41c539[_0x3ef5c8]));manager[_0xfd37('0x50')](_0x3ef5c8);logger[_0xfd37('0x26')](_0xfd37('0x51'),_0x41c539[_0x3ef5c8][_0xfd37('0x13')],_0x41c539[_0x3ef5c8][_0xfd37('0x4c')]);}else if(manager[_0xfd37('0x45')](_0x3ef5c8)){manager[_0xfd37('0x46')](_0x3ef5c8);manager['deleteJob'](_0x3ef5c8);logger[_0xfd37('0x26')]('stop\x20cron',_0x41c539[_0x3ef5c8]['name'],_0x41c539[_0x3ef5c8]['cron']);}}for(_0x12fb73=0x0,_0x3ef5c8;_0x12fb73<_0x154cc9['length']&&!_0xdd663a;_0x12fb73+=0x1){_0x3ef5c8=_0x154cc9[_0x12fb73][_0xfd37('0x40')]();if(manager[_0xfd37('0x45')](_0x3ef5c8)){if(_0x41c539[_0x3ef5c8][_0xfd37('0x4c')]&&_0x41c539[_0x3ef5c8][_0xfd37('0x52')]&&moment()[_0xfd37('0x53')](_0x41c539[_0x3ef5c8]['startAt'],_0x41c539[_0x3ef5c8][_0xfd37('0x4e')])){manager[_0xfd37('0x54')](_0x3ef5c8,_0x41c539[_0x3ef5c8][_0xfd37('0x4c')],handleJob(_0x41c539[_0x3ef5c8]));logger[_0xfd37('0x26')](_0xfd37('0x55'),_0x41c539[_0x3ef5c8]['name'],_0x41c539[_0x3ef5c8][_0xfd37('0x4c')]);}else{manager[_0xfd37('0x46')](_0x3ef5c8);manager['deleteJob'](_0x3ef5c8);logger['info'](_0xfd37('0x56'),_0x41c539[_0x3ef5c8]['name'],_0x41c539[_0x3ef5c8][_0xfd37('0x4c')]);}}}})[_0xfd37('0x2d')](function(_0x88906d){logger[_0xfd37('0x2e')](JSON[_0xfd37('0x24')](_0x88906d));});}exports[_0xfd37('0x57')]=function(_0x49a72e){return getJobs(_0x49a72e);};exports[_0xfd37('0x50')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};