Built motion from commit fe909640.|2.6.8
[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 _0x995d=['count','status','set','Content-Range','json','apply','reject','save','update','then','get','Scheduler','UserProfileResource','error','stack','name','send','index','map','Schedule','rawAttributes','fieldName','type','key','model','query','filters','attributes','fields','length','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','include','catch','show','params','keys','intersection','includeAll','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','run','../../config/schedule','rimraf','zip-dir','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','offset','undefined','limit'];(function(_0x4e08be,_0x28d172){var _0x1d1264=function(_0x1ff078){while(--_0x1ff078){_0x4e08be['push'](_0x4e08be['shift']());}};_0x1d1264(++_0x28d172);}(_0x995d,0x1f3));var _0xd995=function(_0x55e08b,_0x421620){_0x55e08b=_0x55e08b-0x0;var _0xd1a7ff=_0x995d[_0x55e08b];return _0xd1a7ff;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd995('0x0'));var zipdir=require(_0xd995('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xd995('0x2'));var BPromise=require(_0xd995('0x3'));var Mustache=require(_0xd995('0x4'));var util=require('util');var path=require(_0xd995('0x5'));var sox=require(_0xd995('0x6'));var csv=require(_0xd995('0x7'));var ejs=require(_0xd995('0x8'));var fs=require('fs');var fs_extra=require(_0xd995('0x9'));var _=require(_0xd995('0xa'));var squel=require(_0xd995('0xb'));var crypto=require(_0xd995('0xc'));var jsforce=require(_0xd995('0xd'));var deskjs=require(_0xd995('0xe'));var toCsv=require(_0xd995('0x7'));var querystring=require(_0xd995('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xd995('0x10'));var qs=require(_0xd995('0x11'));var as=require(_0xd995('0x12'));var hardwareService=require(_0xd995('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0xd995('0x14'));var config=require(_0xd995('0x15'));var licenseUtil=require(_0xd995('0x16'));var db=require(_0xd995('0x17'))['db'];function respondWithStatusCode(_0x53e290,_0x23c69f){_0x23c69f=_0x23c69f||0xcc;return function(_0x32c529){if(_0x32c529){return _0x53e290[_0xd995('0x18')](_0x23c69f);}return _0x53e290['status'](_0x23c69f)[_0xd995('0x19')]();};}function respondWithResult(_0x557bf0,_0x472fce){_0x472fce=_0x472fce||0xc8;return function(_0x40a1ec){if(_0x40a1ec){return _0x557bf0['status'](_0x472fce)['json'](_0x40a1ec);}};}function respondWithFilteredResult(_0x3f318f,_0x133967){return function(_0x3dd71f){if(_0x3dd71f){var _0x3cbc15=typeof _0x133967[_0xd995('0x1a')]===_0xd995('0x1b')&&typeof _0x133967[_0xd995('0x1c')]===_0xd995('0x1b');var _0x9c4ceb=_0x3dd71f[_0xd995('0x1d')];var _0x127e1d=_0x3cbc15?0x0:_0x133967['offset'];var _0x36fd8a=_0x3cbc15?_0x3dd71f[_0xd995('0x1d')]:_0x133967[_0xd995('0x1a')]+_0x133967[_0xd995('0x1c')];var _0x4ea23f;if(_0x36fd8a>=_0x9c4ceb){_0x36fd8a=_0x9c4ceb;_0x4ea23f=0xc8;}else{_0x4ea23f=0xce;}_0x3f318f[_0xd995('0x1e')](_0x4ea23f);return _0x3f318f[_0xd995('0x1f')](_0xd995('0x20'),_0x127e1d+'-'+_0x36fd8a+'/'+_0x9c4ceb)[_0xd995('0x21')](_0x3dd71f);}return null;};}function patchUpdates(_0x41f3a7){return function(_0xace2b){try{jsonpatch[_0xd995('0x22')](_0xace2b,_0x41f3a7,!![]);}catch(_0x3c989e){return BPromise[_0xd995('0x23')](_0x3c989e);}return _0xace2b[_0xd995('0x24')]();};}function saveUpdates(_0x1591de,_0x26eded){return function(_0x18528f){if(_0x18528f){return _0x18528f[_0xd995('0x25')](_0x1591de)[_0xd995('0x26')](function(_0x38a8b3){return _0x38a8b3;});}return null;};}function removeEntity(_0x37451e,_0xd40c20){return function(_0x31e2eb){if(_0x31e2eb){return _0x31e2eb['destroy']()[_0xd995('0x26')](function(){var _0xdc5a0b=_0x31e2eb[_0xd995('0x27')]({'plain':!![]});var _0x2af471=_0xd995('0x28');return db[_0xd995('0x29')]['destroy']({'where':{'type':_0x2af471,'resourceId':_0xdc5a0b['id']}})[_0xd995('0x26')](function(){return _0x31e2eb;});})[_0xd995('0x26')](function(){_0x37451e[_0xd995('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x28d3bb,_0x7bcdb7){return function(_0x1d8f4e){if(!_0x1d8f4e){_0x28d3bb[_0xd995('0x18')](0x194);}return _0x1d8f4e;};}function handleError(_0x261140,_0x524c00){_0x524c00=_0x524c00||0x1f4;return function(_0x1917d7){logger[_0xd995('0x2a')](_0x1917d7[_0xd995('0x2b')]);if(_0x1917d7[_0xd995('0x2c')]){delete _0x1917d7[_0xd995('0x2c')];}_0x261140[_0xd995('0x1e')](_0x524c00)[_0xd995('0x2d')](_0x1917d7);};}exports[_0xd995('0x2e')]=function(_0x19844e,_0x3c1630){var _0x2044c2={},_0xc849bd={},_0x2e5660={'count':0x0,'rows':[]};var _0x4051bf=_[_0xd995('0x2f')](db[_0xd995('0x30')][_0xd995('0x31')],function(_0x29e236){return{'name':_0x29e236[_0xd995('0x32')],'type':_0x29e236[_0xd995('0x33')][_0xd995('0x34')]};});_0xc849bd[_0xd995('0x35')]=_[_0xd995('0x2f')](_0x4051bf,_0xd995('0x2c'));_0xc849bd['query']=_['keys'](_0x19844e[_0xd995('0x36')]);_0xc849bd[_0xd995('0x37')]=_['intersection'](_0xc849bd['model'],_0xc849bd[_0xd995('0x36')]);_0x2044c2[_0xd995('0x38')]=_['intersection'](_0xc849bd[_0xd995('0x35')],qs[_0xd995('0x39')](_0x19844e['query']['fields']));_0x2044c2['attributes']=_0x2044c2[_0xd995('0x38')][_0xd995('0x3a')]?_0x2044c2['attributes']:_0xc849bd[_0xd995('0x35')];if(!_0x19844e['query']['hasOwnProperty'](_0xd995('0x3b'))){_0x2044c2[_0xd995('0x1c')]=qs['limit'](_0x19844e['query'][_0xd995('0x1c')]);_0x2044c2[_0xd995('0x1a')]=qs[_0xd995('0x1a')](_0x19844e[_0xd995('0x36')]['offset']);}_0x2044c2[_0xd995('0x3c')]=qs[_0xd995('0x3d')](_0x19844e[_0xd995('0x36')][_0xd995('0x3d')]);_0x2044c2[_0xd995('0x3e')]=qs[_0xd995('0x37')](_[_0xd995('0x3f')](_0x19844e[_0xd995('0x36')],_0xc849bd[_0xd995('0x37')]),_0x4051bf);if(_0x19844e[_0xd995('0x36')]['filter']){_0x2044c2[_0xd995('0x3e')]=_[_0xd995('0x40')](_0x2044c2[_0xd995('0x3e')],{'$or':_[_0xd995('0x2f')](_0x4051bf,function(_0x30c9e5){if(_0x30c9e5[_0xd995('0x33')]!==_0xd995('0x41')){var _0x2d5581={};_0x2d5581[_0x30c9e5[_0xd995('0x2c')]]={'$like':'%'+_0x19844e[_0xd995('0x36')][_0xd995('0x42')]+'%'};return _0x2d5581;}})});}_0x2044c2=_['merge']({},_0x2044c2,_0x19844e[_0xd995('0x43')]);var _0x52e9a3={'where':_0x2044c2[_0xd995('0x3e')]};return db[_0xd995('0x30')]['count'](_0x52e9a3)['then'](function(_0x58b168){_0x2e5660[_0xd995('0x1d')]=_0x58b168;if(_0x19844e[_0xd995('0x36')]['includeAll']){_0x2044c2[_0xd995('0x44')]=[{'all':!![]}];}return db[_0xd995('0x30')]['findAll'](_0x2044c2);})[_0xd995('0x26')](function(_0x3ad8fa){_0x2e5660['rows']=_0x3ad8fa;return _0x2e5660;})[_0xd995('0x26')](respondWithFilteredResult(_0x3c1630,_0x2044c2))[_0xd995('0x45')](handleError(_0x3c1630,null));};exports[_0xd995('0x46')]=function(_0x2c2c9a,_0x41f8b2){var _0x12081f={'raw':![],'where':{'id':_0x2c2c9a[_0xd995('0x47')]['id']}},_0x58f8d1={};_0x58f8d1[_0xd995('0x35')]=_[_0xd995('0x48')](db['Schedule'][_0xd995('0x31')]);_0x58f8d1[_0xd995('0x36')]=_[_0xd995('0x48')](_0x2c2c9a[_0xd995('0x36')]);_0x58f8d1[_0xd995('0x37')]=_[_0xd995('0x49')](_0x58f8d1['model'],_0x58f8d1[_0xd995('0x36')]);_0x12081f[_0xd995('0x38')]=_['intersection'](_0x58f8d1[_0xd995('0x35')],qs['fields'](_0x2c2c9a[_0xd995('0x36')][_0xd995('0x39')]));_0x12081f[_0xd995('0x38')]=_0x12081f['attributes'][_0xd995('0x3a')]?_0x12081f[_0xd995('0x38')]:_0x58f8d1['model'];if(_0x2c2c9a[_0xd995('0x36')][_0xd995('0x4a')]){_0x12081f[_0xd995('0x44')]=[{'all':!![]}];}_0x12081f=_['merge']({},_0x12081f,_0x2c2c9a[_0xd995('0x43')]);return db['Schedule']['find'](_0x12081f)[_0xd995('0x26')](handleEntityNotFound(_0x41f8b2,null))[_0xd995('0x26')](respondWithResult(_0x41f8b2,null))[_0xd995('0x45')](handleError(_0x41f8b2,null));};exports[_0xd995('0x4b')]=function(_0x41cbbb,_0x2a34f9){return db[_0xd995('0x30')]['create'](_0x41cbbb[_0xd995('0x4c')],{})[_0xd995('0x26')](function(_0x227d92){var _0x1a3305=_0x41cbbb['user']['get']({'plain':!![]});if(!_0x1a3305)throw new Error(_0xd995('0x4d'));if(_0x1a3305[_0xd995('0x4e')]===_0xd995('0x4f')){var _0x441158=_0x227d92[_0xd995('0x27')]({'plain':!![]});var _0x5bab02=_0xd995('0x28');return db[_0xd995('0x50')][_0xd995('0x51')]({'where':{'name':_0x5bab02,'userProfileId':_0x1a3305[_0xd995('0x52')]},'raw':!![]})[_0xd995('0x26')](function(_0x272f89){if(_0x272f89&&_0x272f89[_0xd995('0x53')]===0x0){return db['UserProfileResource'][_0xd995('0x4b')]({'name':_0x441158[_0xd995('0x2c')],'resourceId':_0x441158['id'],'type':_0x272f89[_0xd995('0x2c')],'sectionId':_0x272f89['id']},{})['then'](function(){return _0x227d92;});}else{return _0x227d92;}})['catch'](function(_0x27c349){logger[_0xd995('0x2a')](_0xd995('0x54'),_0x27c349);throw _0x27c349;});}return _0x227d92;})['then'](respondWithResult(_0x2a34f9,0xc9))[_0xd995('0x45')](handleError(_0x2a34f9,null));};exports[_0xd995('0x25')]=function(_0x25fc5e,_0x4c21dd){if(_0x25fc5e[_0xd995('0x4c')]['id']){delete _0x25fc5e['body']['id'];}return db['Schedule'][_0xd995('0x51')]({'where':{'id':_0x25fc5e[_0xd995('0x47')]['id']}})['then'](handleEntityNotFound(_0x4c21dd,null))[_0xd995('0x26')](saveUpdates(_0x25fc5e[_0xd995('0x4c')],null))['then'](respondWithResult(_0x4c21dd,null))[_0xd995('0x45')](handleError(_0x4c21dd,null));};exports[_0xd995('0x55')]=function(_0x2bab2c,_0x5f0af5){return db[_0xd995('0x30')][_0xd995('0x51')]({'where':{'id':_0x2bab2c[_0xd995('0x47')]['id']}})['then'](handleEntityNotFound(_0x5f0af5,null))[_0xd995('0x26')](removeEntity(_0x5f0af5,null))[_0xd995('0x45')](handleError(_0x5f0af5,null));};exports[_0xd995('0x56')]=function(_0x427c8f,_0xcbaf89,_0x5408d2){var _0x45da7d=require(_0xd995('0x57'));return db[_0xd995('0x30')][_0xd995('0x51')]({'where':{'id':_0x427c8f[_0xd995('0x47')]['id']},'raw':!![]})[_0xd995('0x26')](handleEntityNotFound(_0xcbaf89,null))[_0xd995('0x26')](function(){_0x45da7d[_0xd995('0x56')](_0x427c8f[_0xd995('0x47')]['id']);})[_0xd995('0x26')](respondWithStatusCode(_0xcbaf89,null))[_0xd995('0x45')](handleError(_0xcbaf89,null));};