Built motion from commit (unavailable).|2.5.30
[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 _0xa239=['ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','end','status','undefined','limit','count','offset','set','Content-Range','json','apply','reject','save','update','destroy','then','get','UserProfileResource','sendStatus','error','name','index','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','map','VIRTUAL','filter','Schedule','include','findAll','rows','catch','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','run','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x1de407,_0x3ff709){var _0x5271b1=function(_0x1ef575){while(--_0x1ef575){_0x1de407['push'](_0x1de407['shift']());}};_0x5271b1(++_0x3ff709);}(_0xa239,0x1e6));var _0x9a23=function(_0xa9fda0,_0x2356ab){_0xa9fda0=_0xa9fda0-0x0;var _0x482dea=_0xa239[_0xa9fda0];return _0x482dea;};'use strict';var emlformat=require(_0x9a23('0x0'));var rimraf=require(_0x9a23('0x1'));var zipdir=require(_0x9a23('0x2'));var jsonpatch=require(_0x9a23('0x3'));var rp=require(_0x9a23('0x4'));var moment=require(_0x9a23('0x5'));var BPromise=require(_0x9a23('0x6'));var Mustache=require(_0x9a23('0x7'));var util=require(_0x9a23('0x8'));var path=require('path');var sox=require(_0x9a23('0x9'));var csv=require(_0x9a23('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9a23('0xb'));var _=require(_0x9a23('0xc'));var squel=require('squel');var crypto=require(_0x9a23('0xd'));var jsforce=require(_0x9a23('0xe'));var deskjs=require(_0x9a23('0xf'));var toCsv=require(_0x9a23('0xa'));var querystring=require(_0x9a23('0x10'));var Papa=require(_0x9a23('0x11'));var Redis=require(_0x9a23('0x12'));var authService=require(_0x9a23('0x13'));var qs=require(_0x9a23('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x9a23('0x15'));var utils=require(_0x9a23('0x16'));var config=require(_0x9a23('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x9a23('0x18'))['db'];function respondWithStatusCode(_0x2640d7,_0x3a1442){_0x3a1442=_0x3a1442||0xcc;return function(_0x392fe0){if(_0x392fe0){return _0x2640d7['sendStatus'](_0x3a1442);}return _0x2640d7['status'](_0x3a1442)[_0x9a23('0x19')]();};}function respondWithResult(_0x5855e9,_0x1c86c0){_0x1c86c0=_0x1c86c0||0xc8;return function(_0x388974){if(_0x388974){return _0x5855e9[_0x9a23('0x1a')](_0x1c86c0)['json'](_0x388974);}};}function respondWithFilteredResult(_0x26e73c,_0x160c85){return function(_0x345b43){if(_0x345b43){var _0x5ad561=typeof _0x160c85['offset']===_0x9a23('0x1b')&&typeof _0x160c85[_0x9a23('0x1c')]===_0x9a23('0x1b');var _0x6a7fad=_0x345b43[_0x9a23('0x1d')];var _0x57045d=_0x5ad561?0x0:_0x160c85[_0x9a23('0x1e')];var _0x54503a=_0x5ad561?_0x345b43[_0x9a23('0x1d')]:_0x160c85[_0x9a23('0x1e')]+_0x160c85['limit'];var _0x297a0a;if(_0x54503a>=_0x6a7fad){_0x54503a=_0x6a7fad;_0x297a0a=0xc8;}else{_0x297a0a=0xce;}_0x26e73c[_0x9a23('0x1a')](_0x297a0a);return _0x26e73c[_0x9a23('0x1f')](_0x9a23('0x20'),_0x57045d+'-'+_0x54503a+'/'+_0x6a7fad)[_0x9a23('0x21')](_0x345b43);}return null;};}function patchUpdates(_0x371e33){return function(_0x47960c){try{jsonpatch[_0x9a23('0x22')](_0x47960c,_0x371e33,!![]);}catch(_0x53de15){return BPromise[_0x9a23('0x23')](_0x53de15);}return _0x47960c[_0x9a23('0x24')]();};}function saveUpdates(_0x358add,_0x50b760){return function(_0x38b83c){if(_0x38b83c){return _0x38b83c[_0x9a23('0x25')](_0x358add)['then'](function(_0x16104e){return _0x16104e;});}return null;};}function removeEntity(_0x4430d9,_0x508107){return function(_0x1b747b){if(_0x1b747b){return _0x1b747b[_0x9a23('0x26')]()[_0x9a23('0x27')](function(){var _0x5b5425=_0x1b747b[_0x9a23('0x28')]({'plain':!![]});var _0x5d3de2='Scheduler';return db[_0x9a23('0x29')]['destroy']({'where':{'type':_0x5d3de2,'resourceId':_0x5b5425['id']}})[_0x9a23('0x27')](function(){return _0x1b747b;});})['then'](function(){_0x4430d9[_0x9a23('0x1a')](0xcc)[_0x9a23('0x19')]();});}};}function handleEntityNotFound(_0x4867b4,_0x50b3d2){return function(_0x47e565){if(!_0x47e565){_0x4867b4[_0x9a23('0x2a')](0x194);}return _0x47e565;};}function handleError(_0x49c715,_0x4563fd){_0x4563fd=_0x4563fd||0x1f4;return function(_0x2d805b){logger[_0x9a23('0x2b')](_0x2d805b['stack']);if(_0x2d805b[_0x9a23('0x2c')]){delete _0x2d805b['name'];}_0x49c715[_0x9a23('0x1a')](_0x4563fd)['send'](_0x2d805b);};}exports[_0x9a23('0x2d')]=function(_0x3b0dd2,_0x10b677){var _0x20dbe1={},_0x9e26fd={},_0x15da1e={'count':0x0,'rows':[]};var _0x54d810=_['map'](db['Schedule'][_0x9a23('0x2e')],function(_0x98c438){return{'name':_0x98c438[_0x9a23('0x2f')],'type':_0x98c438[_0x9a23('0x30')][_0x9a23('0x31')]};});_0x9e26fd[_0x9a23('0x32')]=_['map'](_0x54d810,_0x9a23('0x2c'));_0x9e26fd[_0x9a23('0x33')]=_[_0x9a23('0x34')](_0x3b0dd2[_0x9a23('0x33')]);_0x9e26fd['filters']=_[_0x9a23('0x35')](_0x9e26fd[_0x9a23('0x32')],_0x9e26fd[_0x9a23('0x33')]);_0x20dbe1['attributes']=_[_0x9a23('0x35')](_0x9e26fd[_0x9a23('0x32')],qs['fields'](_0x3b0dd2[_0x9a23('0x33')][_0x9a23('0x36')]));_0x20dbe1[_0x9a23('0x37')]=_0x20dbe1[_0x9a23('0x37')]['length']?_0x20dbe1[_0x9a23('0x37')]:_0x9e26fd[_0x9a23('0x32')];if(!_0x3b0dd2['query'][_0x9a23('0x38')](_0x9a23('0x39'))){_0x20dbe1[_0x9a23('0x1c')]=qs[_0x9a23('0x1c')](_0x3b0dd2['query'][_0x9a23('0x1c')]);_0x20dbe1[_0x9a23('0x1e')]=qs[_0x9a23('0x1e')](_0x3b0dd2[_0x9a23('0x33')][_0x9a23('0x1e')]);}_0x20dbe1[_0x9a23('0x3a')]=qs[_0x9a23('0x3b')](_0x3b0dd2[_0x9a23('0x33')]['sort']);_0x20dbe1[_0x9a23('0x3c')]=qs[_0x9a23('0x3d')](_[_0x9a23('0x3e')](_0x3b0dd2['query'],_0x9e26fd['filters']),_0x54d810);if(_0x3b0dd2[_0x9a23('0x33')]['filter']){_0x20dbe1[_0x9a23('0x3c')]=_[_0x9a23('0x3f')](_0x20dbe1[_0x9a23('0x3c')],{'$or':_[_0x9a23('0x40')](_0x54d810,function(_0x2ca9e9){if(_0x2ca9e9[_0x9a23('0x30')]!==_0x9a23('0x41')){var _0x20596b={};_0x20596b[_0x2ca9e9[_0x9a23('0x2c')]]={'$like':'%'+_0x3b0dd2[_0x9a23('0x33')][_0x9a23('0x42')]+'%'};return _0x20596b;}})});}_0x20dbe1=_[_0x9a23('0x3f')]({},_0x20dbe1,_0x3b0dd2['options']);var _0x51d999={'where':_0x20dbe1[_0x9a23('0x3c')]};return db[_0x9a23('0x43')]['count'](_0x51d999)[_0x9a23('0x27')](function(_0x1073b4){_0x15da1e['count']=_0x1073b4;if(_0x3b0dd2[_0x9a23('0x33')]['includeAll']){_0x20dbe1[_0x9a23('0x44')]=[{'all':!![]}];}return db[_0x9a23('0x43')][_0x9a23('0x45')](_0x20dbe1);})['then'](function(_0x19759a){_0x15da1e[_0x9a23('0x46')]=_0x19759a;return _0x15da1e;})[_0x9a23('0x27')](respondWithFilteredResult(_0x10b677,_0x20dbe1))[_0x9a23('0x47')](handleError(_0x10b677,null));};exports['show']=function(_0x3b12ed,_0x1f35a0){var _0x97dc4e={'raw':![],'where':{'id':_0x3b12ed['params']['id']}},_0xab4e55={};_0xab4e55['model']=_[_0x9a23('0x34')](db[_0x9a23('0x43')][_0x9a23('0x2e')]);_0xab4e55['query']=_['keys'](_0x3b12ed[_0x9a23('0x33')]);_0xab4e55[_0x9a23('0x3d')]=_[_0x9a23('0x35')](_0xab4e55[_0x9a23('0x32')],_0xab4e55[_0x9a23('0x33')]);_0x97dc4e['attributes']=_['intersection'](_0xab4e55[_0x9a23('0x32')],qs[_0x9a23('0x36')](_0x3b12ed[_0x9a23('0x33')][_0x9a23('0x36')]));_0x97dc4e[_0x9a23('0x37')]=_0x97dc4e[_0x9a23('0x37')]['length']?_0x97dc4e['attributes']:_0xab4e55[_0x9a23('0x32')];if(_0x3b12ed[_0x9a23('0x33')][_0x9a23('0x48')]){_0x97dc4e[_0x9a23('0x44')]=[{'all':!![]}];}_0x97dc4e=_[_0x9a23('0x3f')]({},_0x97dc4e,_0x3b12ed['options']);return db[_0x9a23('0x43')][_0x9a23('0x49')](_0x97dc4e)['then'](handleEntityNotFound(_0x1f35a0,null))[_0x9a23('0x27')](respondWithResult(_0x1f35a0,null))[_0x9a23('0x47')](handleError(_0x1f35a0,null));};exports['create']=function(_0x9c6ec,_0x1f39d4){return db[_0x9a23('0x43')][_0x9a23('0x4a')](_0x9c6ec[_0x9a23('0x4b')],{})[_0x9a23('0x27')](function(_0x478ac8){var _0x3f6089=_0x9c6ec[_0x9a23('0x4c')][_0x9a23('0x28')]({'plain':!![]});if(!_0x3f6089)throw new Error(_0x9a23('0x4d'));if(_0x3f6089[_0x9a23('0x4e')]==='user'){var _0x5e8de3=_0x478ac8['get']({'plain':!![]});var _0x52efa1='Scheduler';return db[_0x9a23('0x4f')][_0x9a23('0x49')]({'where':{'name':_0x52efa1,'userProfileId':_0x3f6089[_0x9a23('0x50')]},'raw':!![]})[_0x9a23('0x27')](function(_0x55d15c){if(_0x55d15c&&_0x55d15c['autoAssociation']===0x0){return db[_0x9a23('0x29')][_0x9a23('0x4a')]({'name':_0x5e8de3[_0x9a23('0x2c')],'resourceId':_0x5e8de3['id'],'type':_0x55d15c[_0x9a23('0x2c')],'sectionId':_0x55d15c['id']},{})['then'](function(){return _0x478ac8;});}else{return _0x478ac8;}})[_0x9a23('0x47')](function(_0x3ef8e3){logger[_0x9a23('0x2b')](_0x9a23('0x51'),_0x3ef8e3);throw _0x3ef8e3;});}return _0x478ac8;})[_0x9a23('0x27')](respondWithResult(_0x1f39d4,0xc9))[_0x9a23('0x47')](handleError(_0x1f39d4,null));};exports['update']=function(_0x2926af,_0x20679e){if(_0x2926af[_0x9a23('0x4b')]['id']){delete _0x2926af[_0x9a23('0x4b')]['id'];}return db[_0x9a23('0x43')][_0x9a23('0x49')]({'where':{'id':_0x2926af[_0x9a23('0x52')]['id']}})[_0x9a23('0x27')](handleEntityNotFound(_0x20679e,null))['then'](saveUpdates(_0x2926af[_0x9a23('0x4b')],null))[_0x9a23('0x27')](respondWithResult(_0x20679e,null))[_0x9a23('0x47')](handleError(_0x20679e,null));};exports[_0x9a23('0x26')]=function(_0x42125a,_0x493dcd){return db[_0x9a23('0x43')]['find']({'where':{'id':_0x42125a[_0x9a23('0x52')]['id']}})['then'](handleEntityNotFound(_0x493dcd,null))[_0x9a23('0x27')](removeEntity(_0x493dcd,null))['catch'](handleError(_0x493dcd,null));};exports[_0x9a23('0x53')]=function(_0x39cf46,_0x4dae9f,_0x260249){var _0x1485f1=require('../../config/schedule');return db[_0x9a23('0x43')][_0x9a23('0x49')]({'where':{'id':_0x39cf46[_0x9a23('0x52')]['id']},'raw':!![]})[_0x9a23('0x27')](handleEntityNotFound(_0x4dae9f,null))[_0x9a23('0x27')](function(){_0x1485f1['run'](_0x39cf46[_0x9a23('0x52')]['id']);})['then'](respondWithStatusCode(_0x4dae9f,null))[_0x9a23('0x47')](handleError(_0x4dae9f,null));};