Built motion from commit b5996064.|2.6.21
[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 _0xa175=['Scheduler','UserProfileResource','then','error','name','status','send','map','Schedule','rawAttributes','fieldName','model','intersection','attributes','fields','length','query','hasOwnProperty','order','sort','filters','where','merge','type','filter','options','include','rows','show','params','keys','includeAll','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','run','eml-format','rimraf','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','get'];(function(_0x14ce59,_0x20bae6){var _0x262928=function(_0x2c12ec){while(--_0x2c12ec){_0x14ce59['push'](_0x14ce59['shift']());}};_0x262928(++_0x20bae6);}(_0xa175,0xd6));var _0x5a17=function(_0x4725d4,_0xda3c7d){_0x4725d4=_0x4725d4-0x0;var _0x15b258=_0xa175[_0x4725d4];return _0x15b258;};'use strict';var emlformat=require(_0x5a17('0x0'));var rimraf=require(_0x5a17('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x5a17('0x2'));var moment=require(_0x5a17('0x3'));var BPromise=require(_0x5a17('0x4'));var Mustache=require(_0x5a17('0x5'));var util=require('util');var path=require(_0x5a17('0x6'));var sox=require(_0x5a17('0x7'));var csv=require(_0x5a17('0x8'));var ejs=require(_0x5a17('0x9'));var fs=require('fs');var fs_extra=require(_0x5a17('0xa'));var _=require(_0x5a17('0xb'));var squel=require(_0x5a17('0xc'));var crypto=require(_0x5a17('0xd'));var jsforce=require(_0x5a17('0xe'));var deskjs=require(_0x5a17('0xf'));var toCsv=require(_0x5a17('0x8'));var querystring=require('querystring');var Papa=require(_0x5a17('0x10'));var Redis=require(_0x5a17('0x11'));var authService=require(_0x5a17('0x12'));var qs=require(_0x5a17('0x13'));var as=require(_0x5a17('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5a17('0x15'))(_0x5a17('0x16'));var utils=require(_0x5a17('0x17'));var config=require(_0x5a17('0x18'));var licenseUtil=require(_0x5a17('0x19'));var db=require(_0x5a17('0x1a'))['db'];function respondWithStatusCode(_0x1eb76b,_0x29a199){_0x29a199=_0x29a199||0xcc;return function(_0x34ad59){if(_0x34ad59){return _0x1eb76b[_0x5a17('0x1b')](_0x29a199);}return _0x1eb76b['status'](_0x29a199)[_0x5a17('0x1c')]();};}function respondWithResult(_0x9e38b0,_0x30426e){_0x30426e=_0x30426e||0xc8;return function(_0x17a839){if(_0x17a839){return _0x9e38b0['status'](_0x30426e)[_0x5a17('0x1d')](_0x17a839);}};}function respondWithFilteredResult(_0x15bb66,_0x37e40e){return function(_0x2ae1fc){if(_0x2ae1fc){var _0x28728e=typeof _0x37e40e[_0x5a17('0x1e')]===_0x5a17('0x1f')&&typeof _0x37e40e[_0x5a17('0x20')]===_0x5a17('0x1f');var _0x3fd56b=_0x2ae1fc[_0x5a17('0x21')];var _0x9309db=_0x28728e?0x0:_0x37e40e[_0x5a17('0x1e')];var _0x3cd74c=_0x28728e?_0x2ae1fc[_0x5a17('0x21')]:_0x37e40e[_0x5a17('0x1e')]+_0x37e40e[_0x5a17('0x20')];var _0x2cba01;if(_0x3cd74c>=_0x3fd56b){_0x3cd74c=_0x3fd56b;_0x2cba01=0xc8;}else{_0x2cba01=0xce;}_0x15bb66['status'](_0x2cba01);return _0x15bb66[_0x5a17('0x22')](_0x5a17('0x23'),_0x9309db+'-'+_0x3cd74c+'/'+_0x3fd56b)[_0x5a17('0x1d')](_0x2ae1fc);}return null;};}function patchUpdates(_0x4177f8){return function(_0x1b35f7){try{jsonpatch[_0x5a17('0x24')](_0x1b35f7,_0x4177f8,!![]);}catch(_0x172357){return BPromise['reject'](_0x172357);}return _0x1b35f7[_0x5a17('0x25')]();};}function saveUpdates(_0x193c5b,_0xd99e97){return function(_0x583049){if(_0x583049){return _0x583049[_0x5a17('0x26')](_0x193c5b)['then'](function(_0x9ec1fa){return _0x9ec1fa;});}return null;};}function removeEntity(_0x1d75d1,_0x190c88){return function(_0xf141b8){if(_0xf141b8){return _0xf141b8[_0x5a17('0x27')]()['then'](function(){var _0x4fc310=_0xf141b8[_0x5a17('0x28')]({'plain':!![]});var _0x1c0d86=_0x5a17('0x29');return db[_0x5a17('0x2a')]['destroy']({'where':{'type':_0x1c0d86,'resourceId':_0x4fc310['id']}})[_0x5a17('0x2b')](function(){return _0xf141b8;});})[_0x5a17('0x2b')](function(){_0x1d75d1['status'](0xcc)[_0x5a17('0x1c')]();});}};}function handleEntityNotFound(_0x1c674d,_0x262a5b){return function(_0x5f479a){if(!_0x5f479a){_0x1c674d[_0x5a17('0x1b')](0x194);}return _0x5f479a;};}function handleError(_0x556ce7,_0x2ff99f){_0x2ff99f=_0x2ff99f||0x1f4;return function(_0x387a34){logger[_0x5a17('0x2c')](_0x387a34['stack']);if(_0x387a34[_0x5a17('0x2d')]){delete _0x387a34[_0x5a17('0x2d')];}_0x556ce7[_0x5a17('0x2e')](_0x2ff99f)[_0x5a17('0x2f')](_0x387a34);};}exports['index']=function(_0x23645b,_0x266754){var _0x1ca046={},_0x1fe0ca={},_0x1f6a68={'count':0x0,'rows':[]};var _0x34dbc6=_[_0x5a17('0x30')](db[_0x5a17('0x31')][_0x5a17('0x32')],function(_0x5ac5fe){return{'name':_0x5ac5fe[_0x5a17('0x33')],'type':_0x5ac5fe['type']['key']};});_0x1fe0ca[_0x5a17('0x34')]=_[_0x5a17('0x30')](_0x34dbc6,_0x5a17('0x2d'));_0x1fe0ca['query']=_['keys'](_0x23645b['query']);_0x1fe0ca['filters']=_[_0x5a17('0x35')](_0x1fe0ca[_0x5a17('0x34')],_0x1fe0ca['query']);_0x1ca046[_0x5a17('0x36')]=_['intersection'](_0x1fe0ca['model'],qs[_0x5a17('0x37')](_0x23645b['query'][_0x5a17('0x37')]));_0x1ca046[_0x5a17('0x36')]=_0x1ca046[_0x5a17('0x36')][_0x5a17('0x38')]?_0x1ca046[_0x5a17('0x36')]:_0x1fe0ca[_0x5a17('0x34')];if(!_0x23645b[_0x5a17('0x39')][_0x5a17('0x3a')]('nolimit')){_0x1ca046[_0x5a17('0x20')]=qs['limit'](_0x23645b[_0x5a17('0x39')]['limit']);_0x1ca046[_0x5a17('0x1e')]=qs[_0x5a17('0x1e')](_0x23645b[_0x5a17('0x39')][_0x5a17('0x1e')]);}_0x1ca046[_0x5a17('0x3b')]=qs[_0x5a17('0x3c')](_0x23645b['query']['sort']);_0x1ca046['where']=qs[_0x5a17('0x3d')](_['pick'](_0x23645b['query'],_0x1fe0ca[_0x5a17('0x3d')]),_0x34dbc6);if(_0x23645b[_0x5a17('0x39')]['filter']){_0x1ca046[_0x5a17('0x3e')]=_[_0x5a17('0x3f')](_0x1ca046[_0x5a17('0x3e')],{'$or':_['map'](_0x34dbc6,function(_0x2acf93){if(_0x2acf93[_0x5a17('0x40')]!=='VIRTUAL'){var _0x54a1ca={};_0x54a1ca[_0x2acf93[_0x5a17('0x2d')]]={'$like':'%'+_0x23645b[_0x5a17('0x39')][_0x5a17('0x41')]+'%'};return _0x54a1ca;}})});}_0x1ca046=_[_0x5a17('0x3f')]({},_0x1ca046,_0x23645b[_0x5a17('0x42')]);var _0xefcae7={'where':_0x1ca046['where']};return db[_0x5a17('0x31')][_0x5a17('0x21')](_0xefcae7)['then'](function(_0x36ede7){_0x1f6a68[_0x5a17('0x21')]=_0x36ede7;if(_0x23645b[_0x5a17('0x39')]['includeAll']){_0x1ca046[_0x5a17('0x43')]=[{'all':!![]}];}return db[_0x5a17('0x31')]['findAll'](_0x1ca046);})[_0x5a17('0x2b')](function(_0x1c66bf){_0x1f6a68[_0x5a17('0x44')]=_0x1c66bf;return _0x1f6a68;})[_0x5a17('0x2b')](respondWithFilteredResult(_0x266754,_0x1ca046))['catch'](handleError(_0x266754,null));};exports[_0x5a17('0x45')]=function(_0x156d67,_0x591f77){var _0x1f2ab2={'raw':![],'where':{'id':_0x156d67[_0x5a17('0x46')]['id']}},_0x231595={};_0x231595['model']=_[_0x5a17('0x47')](db[_0x5a17('0x31')]['rawAttributes']);_0x231595['query']=_[_0x5a17('0x47')](_0x156d67[_0x5a17('0x39')]);_0x231595[_0x5a17('0x3d')]=_[_0x5a17('0x35')](_0x231595[_0x5a17('0x34')],_0x231595['query']);_0x1f2ab2[_0x5a17('0x36')]=_[_0x5a17('0x35')](_0x231595[_0x5a17('0x34')],qs[_0x5a17('0x37')](_0x156d67[_0x5a17('0x39')]['fields']));_0x1f2ab2[_0x5a17('0x36')]=_0x1f2ab2[_0x5a17('0x36')][_0x5a17('0x38')]?_0x1f2ab2[_0x5a17('0x36')]:_0x231595[_0x5a17('0x34')];if(_0x156d67[_0x5a17('0x39')][_0x5a17('0x48')]){_0x1f2ab2['include']=[{'all':!![]}];}_0x1f2ab2=_['merge']({},_0x1f2ab2,_0x156d67[_0x5a17('0x42')]);return db[_0x5a17('0x31')][_0x5a17('0x49')](_0x1f2ab2)[_0x5a17('0x2b')](handleEntityNotFound(_0x591f77,null))['then'](respondWithResult(_0x591f77,null))[_0x5a17('0x4a')](handleError(_0x591f77,null));};exports[_0x5a17('0x4b')]=function(_0x47ffad,_0x1c0de9){return db[_0x5a17('0x31')][_0x5a17('0x4b')](_0x47ffad[_0x5a17('0x4c')],{})[_0x5a17('0x2b')](function(_0x5496ee){var _0x583e83=_0x47ffad[_0x5a17('0x4d')][_0x5a17('0x28')]({'plain':!![]});if(!_0x583e83)throw new Error(_0x5a17('0x4e'));if(_0x583e83[_0x5a17('0x4f')]==='user'){var _0x2a35bd=_0x5496ee[_0x5a17('0x28')]({'plain':!![]});var _0x5980bb='Scheduler';return db[_0x5a17('0x50')][_0x5a17('0x49')]({'where':{'name':_0x5980bb,'userProfileId':_0x583e83[_0x5a17('0x51')]},'raw':!![]})[_0x5a17('0x2b')](function(_0x5c06c7){if(_0x5c06c7&&_0x5c06c7[_0x5a17('0x52')]===0x0){return db[_0x5a17('0x2a')][_0x5a17('0x4b')]({'name':_0x2a35bd['name'],'resourceId':_0x2a35bd['id'],'type':_0x5c06c7[_0x5a17('0x2d')],'sectionId':_0x5c06c7['id']},{})['then'](function(){return _0x5496ee;});}else{return _0x5496ee;}})[_0x5a17('0x4a')](function(_0x55ecc1){logger['error'](_0x5a17('0x53'),_0x55ecc1);throw _0x55ecc1;});}return _0x5496ee;})[_0x5a17('0x2b')](respondWithResult(_0x1c0de9,0xc9))['catch'](handleError(_0x1c0de9,null));};exports[_0x5a17('0x26')]=function(_0x522782,_0xda3a21){if(_0x522782[_0x5a17('0x4c')]['id']){delete _0x522782[_0x5a17('0x4c')]['id'];}return db[_0x5a17('0x31')][_0x5a17('0x49')]({'where':{'id':_0x522782[_0x5a17('0x46')]['id']}})[_0x5a17('0x2b')](handleEntityNotFound(_0xda3a21,null))['then'](saveUpdates(_0x522782[_0x5a17('0x4c')],null))[_0x5a17('0x2b')](respondWithResult(_0xda3a21,null))[_0x5a17('0x4a')](handleError(_0xda3a21,null));};exports[_0x5a17('0x27')]=function(_0x4d8696,_0x3dd26a){return db[_0x5a17('0x31')][_0x5a17('0x49')]({'where':{'id':_0x4d8696[_0x5a17('0x46')]['id']}})[_0x5a17('0x2b')](handleEntityNotFound(_0x3dd26a,null))[_0x5a17('0x2b')](removeEntity(_0x3dd26a,null))[_0x5a17('0x4a')](handleError(_0x3dd26a,null));};exports[_0x5a17('0x54')]=function(_0x13ac6b,_0x19bc66,_0x2e1abd){var _0xb2079e=require('../../config/schedule');return db[_0x5a17('0x31')][_0x5a17('0x49')]({'where':{'id':_0x13ac6b[_0x5a17('0x46')]['id']},'raw':!![]})[_0x5a17('0x2b')](handleEntityNotFound(_0x19bc66,null))[_0x5a17('0x2b')](function(){_0xb2079e['run'](_0x13ac6b[_0x5a17('0x46')]['id']);})[_0x5a17('0x2b')](respondWithStatusCode(_0x19bc66,null))['catch'](handleError(_0x19bc66,null));};