Built motion from commit 19a84241.|2.5.34
[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 _0x9a9d=['hasOwnProperty','nolimit','order','sort','where','filter','merge','type','options','Schedule','includeAll','include','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','UserProfileResource','run','../../config/schedule','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','get','Scheduler','destroy','error','map','key','model','name','query','keys','filters','intersection','fields','attributes','length'];(function(_0x4eced3,_0x556d73){var _0x26436c=function(_0x39a314){while(--_0x39a314){_0x4eced3['push'](_0x4eced3['shift']());}};_0x26436c(++_0x556d73);}(_0x9a9d,0x15b));var _0xd9a9=function(_0x58fcde,_0x4fa6f9){_0x58fcde=_0x58fcde-0x0;var _0x2e50e5=_0x9a9d[_0x58fcde];return _0x2e50e5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd9a9('0x0'));var zipdir=require(_0xd9a9('0x1'));var jsonpatch=require(_0xd9a9('0x2'));var rp=require('request-promise');var moment=require(_0xd9a9('0x3'));var BPromise=require(_0xd9a9('0x4'));var Mustache=require(_0xd9a9('0x5'));var util=require(_0xd9a9('0x6'));var path=require(_0xd9a9('0x7'));var sox=require(_0xd9a9('0x8'));var csv=require(_0xd9a9('0x9'));var ejs=require(_0xd9a9('0xa'));var fs=require('fs');var fs_extra=require(_0xd9a9('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xd9a9('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xd9a9('0xd'));var toCsv=require(_0xd9a9('0x9'));var querystring=require(_0xd9a9('0xe'));var Papa=require(_0xd9a9('0xf'));var Redis=require(_0xd9a9('0x10'));var authService=require(_0xd9a9('0x11'));var qs=require(_0xd9a9('0x12'));var as=require(_0xd9a9('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xd9a9('0x14'));var utils=require(_0xd9a9('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xd9a9('0x16'));var db=require(_0xd9a9('0x17'))['db'];function respondWithStatusCode(_0x56ce0d,_0x216e8){_0x216e8=_0x216e8||0xcc;return function(_0x440281){if(_0x440281){return _0x56ce0d[_0xd9a9('0x18')](_0x216e8);}return _0x56ce0d['status'](_0x216e8)[_0xd9a9('0x19')]();};}function respondWithResult(_0x3e1923,_0x20067c){_0x20067c=_0x20067c||0xc8;return function(_0x514dab){if(_0x514dab){return _0x3e1923[_0xd9a9('0x1a')](_0x20067c)[_0xd9a9('0x1b')](_0x514dab);}};}function respondWithFilteredResult(_0x3ecde4,_0x2e3e02){return function(_0x4c3f0a){if(_0x4c3f0a){var _0x4e593d=typeof _0x2e3e02[_0xd9a9('0x1c')]===_0xd9a9('0x1d')&&typeof _0x2e3e02[_0xd9a9('0x1e')]===_0xd9a9('0x1d');var _0x3bb76a=_0x4c3f0a[_0xd9a9('0x1f')];var _0x2c06fe=_0x4e593d?0x0:_0x2e3e02[_0xd9a9('0x1c')];var _0x51e134=_0x4e593d?_0x4c3f0a[_0xd9a9('0x1f')]:_0x2e3e02[_0xd9a9('0x1c')]+_0x2e3e02['limit'];var _0xd34138;if(_0x51e134>=_0x3bb76a){_0x51e134=_0x3bb76a;_0xd34138=0xc8;}else{_0xd34138=0xce;}_0x3ecde4['status'](_0xd34138);return _0x3ecde4[_0xd9a9('0x20')](_0xd9a9('0x21'),_0x2c06fe+'-'+_0x51e134+'/'+_0x3bb76a)[_0xd9a9('0x1b')](_0x4c3f0a);}return null;};}function patchUpdates(_0x4692d4){return function(_0x7cffcf){try{jsonpatch[_0xd9a9('0x22')](_0x7cffcf,_0x4692d4,!![]);}catch(_0x2ec449){return BPromise[_0xd9a9('0x23')](_0x2ec449);}return _0x7cffcf['save']();};}function saveUpdates(_0xbd2fd6,_0xcd152){return function(_0x5db788){if(_0x5db788){return _0x5db788[_0xd9a9('0x24')](_0xbd2fd6)[_0xd9a9('0x25')](function(_0x2da1f3){return _0x2da1f3;});}return null;};}function removeEntity(_0xdd50c4,_0x1933cf){return function(_0x22944d){if(_0x22944d){return _0x22944d['destroy']()[_0xd9a9('0x25')](function(){var _0x18ce1d=_0x22944d[_0xd9a9('0x26')]({'plain':!![]});var _0x529ff0=_0xd9a9('0x27');return db['UserProfileResource'][_0xd9a9('0x28')]({'where':{'type':_0x529ff0,'resourceId':_0x18ce1d['id']}})[_0xd9a9('0x25')](function(){return _0x22944d;});})[_0xd9a9('0x25')](function(){_0xdd50c4['status'](0xcc)[_0xd9a9('0x19')]();});}};}function handleEntityNotFound(_0x44400a,_0x1d70f2){return function(_0x90d5f6){if(!_0x90d5f6){_0x44400a['sendStatus'](0x194);}return _0x90d5f6;};}function handleError(_0x183cdc,_0x6c319a){_0x6c319a=_0x6c319a||0x1f4;return function(_0x17d6f8){logger[_0xd9a9('0x29')](_0x17d6f8['stack']);if(_0x17d6f8['name']){delete _0x17d6f8['name'];}_0x183cdc['status'](_0x6c319a)['send'](_0x17d6f8);};}exports['index']=function(_0xf97fb9,_0x5a1b80){var _0x338266={},_0x54901d={},_0x526a02={'count':0x0,'rows':[]};var _0x4e9893=_[_0xd9a9('0x2a')](db['Schedule']['rawAttributes'],function(_0x2361d6){return{'name':_0x2361d6['fieldName'],'type':_0x2361d6['type'][_0xd9a9('0x2b')]};});_0x54901d[_0xd9a9('0x2c')]=_['map'](_0x4e9893,_0xd9a9('0x2d'));_0x54901d[_0xd9a9('0x2e')]=_[_0xd9a9('0x2f')](_0xf97fb9['query']);_0x54901d[_0xd9a9('0x30')]=_['intersection'](_0x54901d[_0xd9a9('0x2c')],_0x54901d[_0xd9a9('0x2e')]);_0x338266['attributes']=_[_0xd9a9('0x31')](_0x54901d[_0xd9a9('0x2c')],qs[_0xd9a9('0x32')](_0xf97fb9['query'][_0xd9a9('0x32')]));_0x338266[_0xd9a9('0x33')]=_0x338266[_0xd9a9('0x33')][_0xd9a9('0x34')]?_0x338266[_0xd9a9('0x33')]:_0x54901d['model'];if(!_0xf97fb9[_0xd9a9('0x2e')][_0xd9a9('0x35')](_0xd9a9('0x36'))){_0x338266[_0xd9a9('0x1e')]=qs[_0xd9a9('0x1e')](_0xf97fb9[_0xd9a9('0x2e')][_0xd9a9('0x1e')]);_0x338266[_0xd9a9('0x1c')]=qs[_0xd9a9('0x1c')](_0xf97fb9['query'][_0xd9a9('0x1c')]);}_0x338266[_0xd9a9('0x37')]=qs[_0xd9a9('0x38')](_0xf97fb9['query'][_0xd9a9('0x38')]);_0x338266[_0xd9a9('0x39')]=qs[_0xd9a9('0x30')](_['pick'](_0xf97fb9[_0xd9a9('0x2e')],_0x54901d[_0xd9a9('0x30')]),_0x4e9893);if(_0xf97fb9['query'][_0xd9a9('0x3a')]){_0x338266[_0xd9a9('0x39')]=_[_0xd9a9('0x3b')](_0x338266['where'],{'$or':_[_0xd9a9('0x2a')](_0x4e9893,function(_0x5c116a){if(_0x5c116a[_0xd9a9('0x3c')]!=='VIRTUAL'){var _0x1274ef={};_0x1274ef[_0x5c116a[_0xd9a9('0x2d')]]={'$like':'%'+_0xf97fb9[_0xd9a9('0x2e')]['filter']+'%'};return _0x1274ef;}})});}_0x338266=_['merge']({},_0x338266,_0xf97fb9[_0xd9a9('0x3d')]);var _0x1bcb17={'where':_0x338266['where']};return db[_0xd9a9('0x3e')][_0xd9a9('0x1f')](_0x1bcb17)[_0xd9a9('0x25')](function(_0x1ae959){_0x526a02['count']=_0x1ae959;if(_0xf97fb9['query'][_0xd9a9('0x3f')]){_0x338266[_0xd9a9('0x40')]=[{'all':!![]}];}return db[_0xd9a9('0x3e')]['findAll'](_0x338266);})[_0xd9a9('0x25')](function(_0x221381){_0x526a02[_0xd9a9('0x41')]=_0x221381;return _0x526a02;})[_0xd9a9('0x25')](respondWithFilteredResult(_0x5a1b80,_0x338266))[_0xd9a9('0x42')](handleError(_0x5a1b80,null));};exports[_0xd9a9('0x43')]=function(_0x3917f6,_0x2d91a5){var _0x190db7={'raw':![],'where':{'id':_0x3917f6[_0xd9a9('0x44')]['id']}},_0x289410={};_0x289410[_0xd9a9('0x2c')]=_['keys'](db[_0xd9a9('0x3e')]['rawAttributes']);_0x289410[_0xd9a9('0x2e')]=_[_0xd9a9('0x2f')](_0x3917f6[_0xd9a9('0x2e')]);_0x289410[_0xd9a9('0x30')]=_[_0xd9a9('0x31')](_0x289410[_0xd9a9('0x2c')],_0x289410['query']);_0x190db7[_0xd9a9('0x33')]=_['intersection'](_0x289410[_0xd9a9('0x2c')],qs['fields'](_0x3917f6[_0xd9a9('0x2e')][_0xd9a9('0x32')]));_0x190db7['attributes']=_0x190db7['attributes'][_0xd9a9('0x34')]?_0x190db7[_0xd9a9('0x33')]:_0x289410[_0xd9a9('0x2c')];if(_0x3917f6[_0xd9a9('0x2e')][_0xd9a9('0x3f')]){_0x190db7['include']=[{'all':!![]}];}_0x190db7=_[_0xd9a9('0x3b')]({},_0x190db7,_0x3917f6[_0xd9a9('0x3d')]);return db[_0xd9a9('0x3e')][_0xd9a9('0x45')](_0x190db7)['then'](handleEntityNotFound(_0x2d91a5,null))[_0xd9a9('0x25')](respondWithResult(_0x2d91a5,null))[_0xd9a9('0x42')](handleError(_0x2d91a5,null));};exports[_0xd9a9('0x46')]=function(_0x309cae,_0x3dd9f9){return db[_0xd9a9('0x3e')][_0xd9a9('0x46')](_0x309cae[_0xd9a9('0x47')],{})[_0xd9a9('0x25')](function(_0x3716a8){var _0x49a74e=_0x309cae[_0xd9a9('0x48')][_0xd9a9('0x26')]({'plain':!![]});if(!_0x49a74e)throw new Error(_0xd9a9('0x49'));if(_0x49a74e[_0xd9a9('0x4a')]==='user'){var _0x595518=_0x3716a8[_0xd9a9('0x26')]({'plain':!![]});var _0x103076=_0xd9a9('0x27');return db['UserProfileSection'][_0xd9a9('0x45')]({'where':{'name':_0x103076,'userProfileId':_0x49a74e[_0xd9a9('0x4b')]},'raw':!![]})['then'](function(_0x3ba711){if(_0x3ba711&&_0x3ba711[_0xd9a9('0x4c')]===0x0){return db[_0xd9a9('0x4d')][_0xd9a9('0x46')]({'name':_0x595518['name'],'resourceId':_0x595518['id'],'type':_0x3ba711[_0xd9a9('0x2d')],'sectionId':_0x3ba711['id']},{})[_0xd9a9('0x25')](function(){return _0x3716a8;});}else{return _0x3716a8;}})[_0xd9a9('0x42')](function(_0x2084c4){logger[_0xd9a9('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2084c4);throw _0x2084c4;});}return _0x3716a8;})[_0xd9a9('0x25')](respondWithResult(_0x3dd9f9,0xc9))[_0xd9a9('0x42')](handleError(_0x3dd9f9,null));};exports[_0xd9a9('0x24')]=function(_0x3fe308,_0x2ab87a){if(_0x3fe308[_0xd9a9('0x47')]['id']){delete _0x3fe308['body']['id'];}return db[_0xd9a9('0x3e')][_0xd9a9('0x45')]({'where':{'id':_0x3fe308[_0xd9a9('0x44')]['id']}})[_0xd9a9('0x25')](handleEntityNotFound(_0x2ab87a,null))[_0xd9a9('0x25')](saveUpdates(_0x3fe308[_0xd9a9('0x47')],null))['then'](respondWithResult(_0x2ab87a,null))[_0xd9a9('0x42')](handleError(_0x2ab87a,null));};exports[_0xd9a9('0x28')]=function(_0x1f78f7,_0x3d9ddf){return db['Schedule'][_0xd9a9('0x45')]({'where':{'id':_0x1f78f7['params']['id']}})[_0xd9a9('0x25')](handleEntityNotFound(_0x3d9ddf,null))[_0xd9a9('0x25')](removeEntity(_0x3d9ddf,null))[_0xd9a9('0x42')](handleError(_0x3d9ddf,null));};exports[_0xd9a9('0x4e')]=function(_0x5d6087,_0x410f7d,_0x3aa662){var _0x2a08e8=require(_0xd9a9('0x4f'));return db[_0xd9a9('0x3e')][_0xd9a9('0x45')]({'where':{'id':_0x5d6087['params']['id']},'raw':!![]})[_0xd9a9('0x25')](handleEntityNotFound(_0x410f7d,null))[_0xd9a9('0x25')](function(){_0x2a08e8[_0xd9a9('0x4e')](_0x5d6087[_0xd9a9('0x44')]['id']);})['then'](respondWithStatusCode(_0x410f7d,null))[_0xd9a9('0x42')](handleError(_0x410f7d,null));};