Built motion from commit 52c8a02d.|2.6.29
[motion2.git] / server / api / schedule / schedule.controller.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 _0x4c6e=['filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','merge','VIRTUAL','filter','include','rows','catch','params','includeAll','options','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','run','../../config/schedule','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','get','Scheduler','error','stack','name','index','Schedule','rawAttributes','fieldName','type','key','model','query','keys'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x4c6e,0x1b2));var _0xe4c6=function(_0x1e262c,_0x5d89f6){_0x1e262c=_0x1e262c-0x0;var _0x39556f=_0x4c6e[_0x1e262c];return _0x39556f;};'use strict';var emlformat=require(_0xe4c6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe4c6('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe4c6('0x2'));var moment=require('moment');var BPromise=require(_0xe4c6('0x3'));var Mustache=require(_0xe4c6('0x4'));var util=require(_0xe4c6('0x5'));var path=require(_0xe4c6('0x6'));var sox=require('sox');var csv=require(_0xe4c6('0x7'));var ejs=require(_0xe4c6('0x8'));var fs=require('fs');var fs_extra=require(_0xe4c6('0x9'));var _=require(_0xe4c6('0xa'));var squel=require(_0xe4c6('0xb'));var crypto=require(_0xe4c6('0xc'));var jsforce=require(_0xe4c6('0xd'));var deskjs=require(_0xe4c6('0xe'));var toCsv=require(_0xe4c6('0x7'));var querystring=require('querystring');var Papa=require(_0xe4c6('0xf'));var Redis=require('ioredis');var authService=require(_0xe4c6('0x10'));var qs=require(_0xe4c6('0x11'));var as=require(_0xe4c6('0x12'));var hardwareService=require(_0xe4c6('0x13'));var logger=require(_0xe4c6('0x14'))('api');var utils=require(_0xe4c6('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xe4c6('0x16'));var db=require(_0xe4c6('0x17'))['db'];function respondWithStatusCode(_0x2fba8a,_0x27ac67){_0x27ac67=_0x27ac67||0xcc;return function(_0x5bdc6a){if(_0x5bdc6a){return _0x2fba8a[_0xe4c6('0x18')](_0x27ac67);}return _0x2fba8a[_0xe4c6('0x19')](_0x27ac67)[_0xe4c6('0x1a')]();};}function respondWithResult(_0x40fd27,_0x573528){_0x573528=_0x573528||0xc8;return function(_0x36ed27){if(_0x36ed27){return _0x40fd27[_0xe4c6('0x19')](_0x573528)[_0xe4c6('0x1b')](_0x36ed27);}};}function respondWithFilteredResult(_0x3a5492,_0x273c14){return function(_0x5a4051){if(_0x5a4051){var _0x1d0e5b=typeof _0x273c14[_0xe4c6('0x1c')]===_0xe4c6('0x1d')&&typeof _0x273c14[_0xe4c6('0x1e')]===_0xe4c6('0x1d');var _0x40b6ef=_0x5a4051[_0xe4c6('0x1f')];var _0x257cb8=_0x1d0e5b?0x0:_0x273c14[_0xe4c6('0x1c')];var _0x5644ab=_0x1d0e5b?_0x5a4051[_0xe4c6('0x1f')]:_0x273c14[_0xe4c6('0x1c')]+_0x273c14[_0xe4c6('0x1e')];var _0x40b069;if(_0x5644ab>=_0x40b6ef){_0x5644ab=_0x40b6ef;_0x40b069=0xc8;}else{_0x40b069=0xce;}_0x3a5492['status'](_0x40b069);return _0x3a5492['set'](_0xe4c6('0x20'),_0x257cb8+'-'+_0x5644ab+'/'+_0x40b6ef)[_0xe4c6('0x1b')](_0x5a4051);}return null;};}function patchUpdates(_0x274cd5){return function(_0x51629b){try{jsonpatch[_0xe4c6('0x21')](_0x51629b,_0x274cd5,!![]);}catch(_0x5e1368){return BPromise[_0xe4c6('0x22')](_0x5e1368);}return _0x51629b[_0xe4c6('0x23')]();};}function saveUpdates(_0x172464,_0x1b1fb8){return function(_0xf7fdd9){if(_0xf7fdd9){return _0xf7fdd9['update'](_0x172464)[_0xe4c6('0x24')](function(_0x20ee51){return _0x20ee51;});}return null;};}function removeEntity(_0x2ffeab,_0x4b8172){return function(_0x200d83){if(_0x200d83){return _0x200d83[_0xe4c6('0x25')]()[_0xe4c6('0x24')](function(){var _0x1ab89d=_0x200d83[_0xe4c6('0x26')]({'plain':!![]});var _0x4266fe=_0xe4c6('0x27');return db['UserProfileResource'][_0xe4c6('0x25')]({'where':{'type':_0x4266fe,'resourceId':_0x1ab89d['id']}})['then'](function(){return _0x200d83;});})[_0xe4c6('0x24')](function(){_0x2ffeab[_0xe4c6('0x19')](0xcc)[_0xe4c6('0x1a')]();});}};}function handleEntityNotFound(_0x3d20dd,_0x1f7a1b){return function(_0x1b1f02){if(!_0x1b1f02){_0x3d20dd[_0xe4c6('0x18')](0x194);}return _0x1b1f02;};}function handleError(_0x3269bf,_0x1a5359){_0x1a5359=_0x1a5359||0x1f4;return function(_0x5c5a99){logger[_0xe4c6('0x28')](_0x5c5a99[_0xe4c6('0x29')]);if(_0x5c5a99[_0xe4c6('0x2a')]){delete _0x5c5a99[_0xe4c6('0x2a')];}_0x3269bf[_0xe4c6('0x19')](_0x1a5359)['send'](_0x5c5a99);};}exports[_0xe4c6('0x2b')]=function(_0x13d362,_0x27e9a2){var _0x557b7e={},_0x61cc55={},_0x33a2c6={'count':0x0,'rows':[]};var _0x489a3c=_['map'](db[_0xe4c6('0x2c')][_0xe4c6('0x2d')],function(_0x37913f){return{'name':_0x37913f[_0xe4c6('0x2e')],'type':_0x37913f[_0xe4c6('0x2f')][_0xe4c6('0x30')]};});_0x61cc55[_0xe4c6('0x31')]=_['map'](_0x489a3c,_0xe4c6('0x2a'));_0x61cc55[_0xe4c6('0x32')]=_[_0xe4c6('0x33')](_0x13d362[_0xe4c6('0x32')]);_0x61cc55[_0xe4c6('0x34')]=_['intersection'](_0x61cc55['model'],_0x61cc55[_0xe4c6('0x32')]);_0x557b7e['attributes']=_[_0xe4c6('0x35')](_0x61cc55[_0xe4c6('0x31')],qs[_0xe4c6('0x36')](_0x13d362[_0xe4c6('0x32')][_0xe4c6('0x36')]));_0x557b7e['attributes']=_0x557b7e[_0xe4c6('0x37')][_0xe4c6('0x38')]?_0x557b7e[_0xe4c6('0x37')]:_0x61cc55['model'];if(!_0x13d362[_0xe4c6('0x32')][_0xe4c6('0x39')]('nolimit')){_0x557b7e[_0xe4c6('0x1e')]=qs[_0xe4c6('0x1e')](_0x13d362[_0xe4c6('0x32')][_0xe4c6('0x1e')]);_0x557b7e[_0xe4c6('0x1c')]=qs[_0xe4c6('0x1c')](_0x13d362[_0xe4c6('0x32')][_0xe4c6('0x1c')]);}_0x557b7e[_0xe4c6('0x3a')]=qs[_0xe4c6('0x3b')](_0x13d362[_0xe4c6('0x32')]['sort']);_0x557b7e['where']=qs[_0xe4c6('0x34')](_['pick'](_0x13d362[_0xe4c6('0x32')],_0x61cc55[_0xe4c6('0x34')]),_0x489a3c);if(_0x13d362['query']['filter']){_0x557b7e[_0xe4c6('0x3c')]=_[_0xe4c6('0x3d')](_0x557b7e['where'],{'$or':_['map'](_0x489a3c,function(_0x28b4ba){if(_0x28b4ba[_0xe4c6('0x2f')]!==_0xe4c6('0x3e')){var _0x56c996={};_0x56c996[_0x28b4ba[_0xe4c6('0x2a')]]={'$like':'%'+_0x13d362[_0xe4c6('0x32')][_0xe4c6('0x3f')]+'%'};return _0x56c996;}})});}_0x557b7e=_[_0xe4c6('0x3d')]({},_0x557b7e,_0x13d362['options']);var _0xaa0326={'where':_0x557b7e['where']};return db[_0xe4c6('0x2c')][_0xe4c6('0x1f')](_0xaa0326)[_0xe4c6('0x24')](function(_0x472ca1){_0x33a2c6[_0xe4c6('0x1f')]=_0x472ca1;if(_0x13d362[_0xe4c6('0x32')]['includeAll']){_0x557b7e[_0xe4c6('0x40')]=[{'all':!![]}];}return db[_0xe4c6('0x2c')]['findAll'](_0x557b7e);})[_0xe4c6('0x24')](function(_0x116726){_0x33a2c6[_0xe4c6('0x41')]=_0x116726;return _0x33a2c6;})[_0xe4c6('0x24')](respondWithFilteredResult(_0x27e9a2,_0x557b7e))[_0xe4c6('0x42')](handleError(_0x27e9a2,null));};exports['show']=function(_0x4eadcc,_0x38b28f){var _0x3773c1={'raw':![],'where':{'id':_0x4eadcc[_0xe4c6('0x43')]['id']}},_0x13e928={};_0x13e928[_0xe4c6('0x31')]=_[_0xe4c6('0x33')](db[_0xe4c6('0x2c')][_0xe4c6('0x2d')]);_0x13e928['query']=_[_0xe4c6('0x33')](_0x4eadcc[_0xe4c6('0x32')]);_0x13e928['filters']=_[_0xe4c6('0x35')](_0x13e928[_0xe4c6('0x31')],_0x13e928[_0xe4c6('0x32')]);_0x3773c1[_0xe4c6('0x37')]=_[_0xe4c6('0x35')](_0x13e928[_0xe4c6('0x31')],qs[_0xe4c6('0x36')](_0x4eadcc['query']['fields']));_0x3773c1[_0xe4c6('0x37')]=_0x3773c1[_0xe4c6('0x37')][_0xe4c6('0x38')]?_0x3773c1[_0xe4c6('0x37')]:_0x13e928[_0xe4c6('0x31')];if(_0x4eadcc[_0xe4c6('0x32')][_0xe4c6('0x44')]){_0x3773c1[_0xe4c6('0x40')]=[{'all':!![]}];}_0x3773c1=_['merge']({},_0x3773c1,_0x4eadcc[_0xe4c6('0x45')]);return db[_0xe4c6('0x2c')][_0xe4c6('0x46')](_0x3773c1)[_0xe4c6('0x24')](handleEntityNotFound(_0x38b28f,null))[_0xe4c6('0x24')](respondWithResult(_0x38b28f,null))[_0xe4c6('0x42')](handleError(_0x38b28f,null));};exports[_0xe4c6('0x47')]=function(_0x8fa472,_0x45fc63){return db['Schedule'][_0xe4c6('0x47')](_0x8fa472[_0xe4c6('0x48')],{})['then'](function(_0xddd885){var _0xbec3b3=_0x8fa472[_0xe4c6('0x49')]['get']({'plain':!![]});if(!_0xbec3b3)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xbec3b3[_0xe4c6('0x4a')]===_0xe4c6('0x49')){var _0x2045ff=_0xddd885[_0xe4c6('0x26')]({'plain':!![]});var _0x477d79=_0xe4c6('0x27');return db[_0xe4c6('0x4b')][_0xe4c6('0x46')]({'where':{'name':_0x477d79,'userProfileId':_0xbec3b3[_0xe4c6('0x4c')]},'raw':!![]})[_0xe4c6('0x24')](function(_0x4aa81c){if(_0x4aa81c&&_0x4aa81c[_0xe4c6('0x4d')]===0x0){return db[_0xe4c6('0x4e')][_0xe4c6('0x47')]({'name':_0x2045ff['name'],'resourceId':_0x2045ff['id'],'type':_0x4aa81c[_0xe4c6('0x2a')],'sectionId':_0x4aa81c['id']},{})['then'](function(){return _0xddd885;});}else{return _0xddd885;}})[_0xe4c6('0x42')](function(_0x532827){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x532827);throw _0x532827;});}return _0xddd885;})[_0xe4c6('0x24')](respondWithResult(_0x45fc63,0xc9))[_0xe4c6('0x42')](handleError(_0x45fc63,null));};exports['update']=function(_0x2cdb4d,_0x420d0f){if(_0x2cdb4d[_0xe4c6('0x48')]['id']){delete _0x2cdb4d[_0xe4c6('0x48')]['id'];}return db[_0xe4c6('0x2c')]['find']({'where':{'id':_0x2cdb4d['params']['id']}})[_0xe4c6('0x24')](handleEntityNotFound(_0x420d0f,null))[_0xe4c6('0x24')](saveUpdates(_0x2cdb4d[_0xe4c6('0x48')],null))[_0xe4c6('0x24')](respondWithResult(_0x420d0f,null))[_0xe4c6('0x42')](handleError(_0x420d0f,null));};exports[_0xe4c6('0x25')]=function(_0x11f048,_0x1f79a7){return db[_0xe4c6('0x2c')]['find']({'where':{'id':_0x11f048[_0xe4c6('0x43')]['id']}})[_0xe4c6('0x24')](handleEntityNotFound(_0x1f79a7,null))[_0xe4c6('0x24')](removeEntity(_0x1f79a7,null))['catch'](handleError(_0x1f79a7,null));};exports[_0xe4c6('0x4f')]=function(_0x187468,_0x38640a,_0x5e3001){var _0x544076=require(_0xe4c6('0x50'));return db[_0xe4c6('0x2c')]['find']({'where':{'id':_0x187468[_0xe4c6('0x43')]['id']},'raw':!![]})[_0xe4c6('0x24')](handleEntityNotFound(_0x38640a,null))['then'](function(){_0x544076[_0xe4c6('0x4f')](_0x187468[_0xe4c6('0x43')]['id']);})[_0xe4c6('0x24')](respondWithStatusCode(_0x38640a,null))['catch'](handleError(_0x38640a,null));};