Built motion from commit 753c950e.|2.5.42
[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 _0x3c15=['include','findAll','rows','show','params','includeAll','find','catch','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','run','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','status','send','map','Schedule','rawAttributes','fieldName','type','key','model','keys','intersection','query','fields','attributes','length','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','merge','options'];(function(_0xbb091,_0x3fe7ee){var _0x467a04=function(_0x3a978d){while(--_0x3a978d){_0xbb091['push'](_0xbb091['shift']());}};_0x467a04(++_0x3fe7ee);}(_0x3c15,0x66));var _0x53c1=function(_0x1753e0,_0x32ccd4){_0x1753e0=_0x1753e0-0x0;var _0xc9f908=_0x3c15[_0x1753e0];return _0xc9f908;};'use strict';var emlformat=require(_0x53c1('0x0'));var rimraf=require(_0x53c1('0x1'));var zipdir=require(_0x53c1('0x2'));var jsonpatch=require(_0x53c1('0x3'));var rp=require(_0x53c1('0x4'));var moment=require(_0x53c1('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x53c1('0x6'));var util=require(_0x53c1('0x7'));var path=require(_0x53c1('0x8'));var sox=require(_0x53c1('0x9'));var csv=require(_0x53c1('0xa'));var ejs=require(_0x53c1('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x53c1('0xc'));var crypto=require(_0x53c1('0xd'));var jsforce=require(_0x53c1('0xe'));var deskjs=require(_0x53c1('0xf'));var toCsv=require(_0x53c1('0xa'));var querystring=require(_0x53c1('0x10'));var Papa=require(_0x53c1('0x11'));var Redis=require('ioredis');var authService=require(_0x53c1('0x12'));var qs=require(_0x53c1('0x13'));var as=require(_0x53c1('0x14'));var hardwareService=require(_0x53c1('0x15'));var logger=require(_0x53c1('0x16'))('api');var utils=require(_0x53c1('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x53c1('0x18'));var db=require(_0x53c1('0x19'))['db'];function respondWithStatusCode(_0x3c7260,_0x489e08){_0x489e08=_0x489e08||0xcc;return function(_0x394541){if(_0x394541){return _0x3c7260[_0x53c1('0x1a')](_0x489e08);}return _0x3c7260['status'](_0x489e08)[_0x53c1('0x1b')]();};}function respondWithResult(_0x46c7e8,_0x2e91cb){_0x2e91cb=_0x2e91cb||0xc8;return function(_0x5c10a3){if(_0x5c10a3){return _0x46c7e8['status'](_0x2e91cb)[_0x53c1('0x1c')](_0x5c10a3);}};}function respondWithFilteredResult(_0x7368c1,_0x3bf537){return function(_0x2ffcdb){if(_0x2ffcdb){var _0x2976f8=typeof _0x3bf537[_0x53c1('0x1d')]===_0x53c1('0x1e')&&typeof _0x3bf537['limit']===_0x53c1('0x1e');var _0x452eb6=_0x2ffcdb[_0x53c1('0x1f')];var _0x25cbec=_0x2976f8?0x0:_0x3bf537[_0x53c1('0x1d')];var _0x504af0=_0x2976f8?_0x2ffcdb[_0x53c1('0x1f')]:_0x3bf537[_0x53c1('0x1d')]+_0x3bf537[_0x53c1('0x20')];var _0x3883bd;if(_0x504af0>=_0x452eb6){_0x504af0=_0x452eb6;_0x3883bd=0xc8;}else{_0x3883bd=0xce;}_0x7368c1['status'](_0x3883bd);return _0x7368c1[_0x53c1('0x21')](_0x53c1('0x22'),_0x25cbec+'-'+_0x504af0+'/'+_0x452eb6)[_0x53c1('0x1c')](_0x2ffcdb);}return null;};}function patchUpdates(_0xbb2830){return function(_0x596b6b){try{jsonpatch[_0x53c1('0x23')](_0x596b6b,_0xbb2830,!![]);}catch(_0x434f28){return BPromise[_0x53c1('0x24')](_0x434f28);}return _0x596b6b[_0x53c1('0x25')]();};}function saveUpdates(_0x4b1361,_0xbd23b1){return function(_0x946179){if(_0x946179){return _0x946179[_0x53c1('0x26')](_0x4b1361)[_0x53c1('0x27')](function(_0x1cc558){return _0x1cc558;});}return null;};}function removeEntity(_0x5013f4,_0x696bbe){return function(_0x2760d3){if(_0x2760d3){return _0x2760d3[_0x53c1('0x28')]()[_0x53c1('0x27')](function(){var _0x1fcf04=_0x2760d3[_0x53c1('0x29')]({'plain':!![]});var _0x2f66fc=_0x53c1('0x2a');return db[_0x53c1('0x2b')][_0x53c1('0x28')]({'where':{'type':_0x2f66fc,'resourceId':_0x1fcf04['id']}})[_0x53c1('0x27')](function(){return _0x2760d3;});})['then'](function(){_0x5013f4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x16252f,_0x49400f){return function(_0x33ea53){if(!_0x33ea53){_0x16252f['sendStatus'](0x194);}return _0x33ea53;};}function handleError(_0x1c774c,_0xf9c236){_0xf9c236=_0xf9c236||0x1f4;return function(_0x2f1291){logger[_0x53c1('0x2c')](_0x2f1291[_0x53c1('0x2d')]);if(_0x2f1291[_0x53c1('0x2e')]){delete _0x2f1291[_0x53c1('0x2e')];}_0x1c774c[_0x53c1('0x2f')](_0xf9c236)[_0x53c1('0x30')](_0x2f1291);};}exports['index']=function(_0x335128,_0x599e39){var _0x385dcf={},_0x1a507d={},_0x4fa514={'count':0x0,'rows':[]};var _0x5ed988=_[_0x53c1('0x31')](db[_0x53c1('0x32')][_0x53c1('0x33')],function(_0x4b4dee){return{'name':_0x4b4dee[_0x53c1('0x34')],'type':_0x4b4dee[_0x53c1('0x35')][_0x53c1('0x36')]};});_0x1a507d[_0x53c1('0x37')]=_[_0x53c1('0x31')](_0x5ed988,_0x53c1('0x2e'));_0x1a507d['query']=_[_0x53c1('0x38')](_0x335128['query']);_0x1a507d['filters']=_[_0x53c1('0x39')](_0x1a507d[_0x53c1('0x37')],_0x1a507d[_0x53c1('0x3a')]);_0x385dcf['attributes']=_[_0x53c1('0x39')](_0x1a507d[_0x53c1('0x37')],qs[_0x53c1('0x3b')](_0x335128[_0x53c1('0x3a')][_0x53c1('0x3b')]));_0x385dcf['attributes']=_0x385dcf[_0x53c1('0x3c')][_0x53c1('0x3d')]?_0x385dcf[_0x53c1('0x3c')]:_0x1a507d[_0x53c1('0x37')];if(!_0x335128[_0x53c1('0x3a')][_0x53c1('0x3e')]('nolimit')){_0x385dcf[_0x53c1('0x20')]=qs[_0x53c1('0x20')](_0x335128[_0x53c1('0x3a')][_0x53c1('0x20')]);_0x385dcf[_0x53c1('0x1d')]=qs[_0x53c1('0x1d')](_0x335128[_0x53c1('0x3a')][_0x53c1('0x1d')]);}_0x385dcf[_0x53c1('0x3f')]=qs[_0x53c1('0x40')](_0x335128[_0x53c1('0x3a')][_0x53c1('0x40')]);_0x385dcf[_0x53c1('0x41')]=qs[_0x53c1('0x42')](_[_0x53c1('0x43')](_0x335128[_0x53c1('0x3a')],_0x1a507d['filters']),_0x5ed988);if(_0x335128['query'][_0x53c1('0x44')]){_0x385dcf['where']=_['merge'](_0x385dcf[_0x53c1('0x41')],{'$or':_[_0x53c1('0x31')](_0x5ed988,function(_0x393988){if(_0x393988[_0x53c1('0x35')]!==_0x53c1('0x45')){var _0x2b0690={};_0x2b0690[_0x393988['name']]={'$like':'%'+_0x335128[_0x53c1('0x3a')][_0x53c1('0x44')]+'%'};return _0x2b0690;}})});}_0x385dcf=_[_0x53c1('0x46')]({},_0x385dcf,_0x335128[_0x53c1('0x47')]);var _0x4772e8={'where':_0x385dcf[_0x53c1('0x41')]};return db[_0x53c1('0x32')]['count'](_0x4772e8)[_0x53c1('0x27')](function(_0x1e806f){_0x4fa514[_0x53c1('0x1f')]=_0x1e806f;if(_0x335128['query']['includeAll']){_0x385dcf[_0x53c1('0x48')]=[{'all':!![]}];}return db[_0x53c1('0x32')][_0x53c1('0x49')](_0x385dcf);})[_0x53c1('0x27')](function(_0x1a61dd){_0x4fa514[_0x53c1('0x4a')]=_0x1a61dd;return _0x4fa514;})[_0x53c1('0x27')](respondWithFilteredResult(_0x599e39,_0x385dcf))['catch'](handleError(_0x599e39,null));};exports[_0x53c1('0x4b')]=function(_0x511681,_0x4bdf49){var _0x507873={'raw':![],'where':{'id':_0x511681[_0x53c1('0x4c')]['id']}},_0x3dbf7e={};_0x3dbf7e['model']=_[_0x53c1('0x38')](db['Schedule'][_0x53c1('0x33')]);_0x3dbf7e['query']=_[_0x53c1('0x38')](_0x511681[_0x53c1('0x3a')]);_0x3dbf7e[_0x53c1('0x42')]=_[_0x53c1('0x39')](_0x3dbf7e[_0x53c1('0x37')],_0x3dbf7e[_0x53c1('0x3a')]);_0x507873[_0x53c1('0x3c')]=_['intersection'](_0x3dbf7e[_0x53c1('0x37')],qs[_0x53c1('0x3b')](_0x511681[_0x53c1('0x3a')][_0x53c1('0x3b')]));_0x507873[_0x53c1('0x3c')]=_0x507873[_0x53c1('0x3c')]['length']?_0x507873[_0x53c1('0x3c')]:_0x3dbf7e['model'];if(_0x511681['query'][_0x53c1('0x4d')]){_0x507873[_0x53c1('0x48')]=[{'all':!![]}];}_0x507873=_[_0x53c1('0x46')]({},_0x507873,_0x511681[_0x53c1('0x47')]);return db[_0x53c1('0x32')][_0x53c1('0x4e')](_0x507873)[_0x53c1('0x27')](handleEntityNotFound(_0x4bdf49,null))['then'](respondWithResult(_0x4bdf49,null))[_0x53c1('0x4f')](handleError(_0x4bdf49,null));};exports['create']=function(_0xfba407,_0x22ef04){return db[_0x53c1('0x32')]['create'](_0xfba407[_0x53c1('0x50')],{})[_0x53c1('0x27')](function(_0x3abf1b){var _0x40af9f=_0xfba407[_0x53c1('0x51')][_0x53c1('0x29')]({'plain':!![]});if(!_0x40af9f)throw new Error(_0x53c1('0x52'));if(_0x40af9f['role']===_0x53c1('0x51')){var _0x3daaa8=_0x3abf1b[_0x53c1('0x29')]({'plain':!![]});var _0x18a347=_0x53c1('0x2a');return db['UserProfileSection'][_0x53c1('0x4e')]({'where':{'name':_0x18a347,'userProfileId':_0x40af9f['userProfileId']},'raw':!![]})['then'](function(_0x160785){if(_0x160785&&_0x160785[_0x53c1('0x53')]===0x0){return db[_0x53c1('0x2b')][_0x53c1('0x54')]({'name':_0x3daaa8['name'],'resourceId':_0x3daaa8['id'],'type':_0x160785[_0x53c1('0x2e')],'sectionId':_0x160785['id']},{})['then'](function(){return _0x3abf1b;});}else{return _0x3abf1b;}})[_0x53c1('0x4f')](function(_0x10f896){logger['error'](_0x53c1('0x55'),_0x10f896);throw _0x10f896;});}return _0x3abf1b;})[_0x53c1('0x27')](respondWithResult(_0x22ef04,0xc9))['catch'](handleError(_0x22ef04,null));};exports[_0x53c1('0x26')]=function(_0x53d5d6,_0x55463d){if(_0x53d5d6[_0x53c1('0x50')]['id']){delete _0x53d5d6[_0x53c1('0x50')]['id'];}return db['Schedule'][_0x53c1('0x4e')]({'where':{'id':_0x53d5d6['params']['id']}})[_0x53c1('0x27')](handleEntityNotFound(_0x55463d,null))['then'](saveUpdates(_0x53d5d6['body'],null))['then'](respondWithResult(_0x55463d,null))['catch'](handleError(_0x55463d,null));};exports[_0x53c1('0x28')]=function(_0xbb0ac0,_0x461f34){return db[_0x53c1('0x32')][_0x53c1('0x4e')]({'where':{'id':_0xbb0ac0[_0x53c1('0x4c')]['id']}})[_0x53c1('0x27')](handleEntityNotFound(_0x461f34,null))['then'](removeEntity(_0x461f34,null))[_0x53c1('0x4f')](handleError(_0x461f34,null));};exports[_0x53c1('0x56')]=function(_0x1f0bfe,_0x5534f0,_0x3912bd){var _0x1db49d=require('../../config/schedule');return db[_0x53c1('0x32')]['find']({'where':{'id':_0x1f0bfe[_0x53c1('0x4c')]['id']},'raw':!![]})[_0x53c1('0x27')](handleEntityNotFound(_0x5534f0,null))[_0x53c1('0x27')](function(){_0x1db49d['run'](_0x1f0bfe[_0x53c1('0x4c')]['id']);})[_0x53c1('0x27')](respondWithStatusCode(_0x5534f0,null))['catch'](handleError(_0x5534f0,null));};