Built motion from commit 9d7072cc.|2.5.39
[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 _0x3d74=['lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','json','apply','reject','save','update','then','destroy','get','UserProfileResource','error','name','index','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','findAll','rows','catch','show','params','Schedule','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Scheduler','UserProfileSection','autoAssociation','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','to-csv','ejs','fs-extra'];(function(_0x9ba21,_0x44dcfd){var _0x22b9e4=function(_0x5f4f12){while(--_0x5f4f12){_0x9ba21['push'](_0x9ba21['shift']());}};_0x22b9e4(++_0x44dcfd);}(_0x3d74,0x1ec));var _0x43d7=function(_0x3df585,_0xe441c8){_0x3df585=_0x3df585-0x0;var _0x247808=_0x3d74[_0x3df585];return _0x247808;};'use strict';var emlformat=require(_0x43d7('0x0'));var rimraf=require(_0x43d7('0x1'));var zipdir=require(_0x43d7('0x2'));var jsonpatch=require(_0x43d7('0x3'));var rp=require(_0x43d7('0x4'));var moment=require(_0x43d7('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x43d7('0x6'));var util=require(_0x43d7('0x7'));var path=require(_0x43d7('0x8'));var sox=require('sox');var csv=require(_0x43d7('0x9'));var ejs=require(_0x43d7('0xa'));var fs=require('fs');var fs_extra=require(_0x43d7('0xb'));var _=require(_0x43d7('0xc'));var squel=require(_0x43d7('0xd'));var crypto=require(_0x43d7('0xe'));var jsforce=require(_0x43d7('0xf'));var deskjs=require(_0x43d7('0x10'));var toCsv=require(_0x43d7('0x9'));var querystring=require(_0x43d7('0x11'));var Papa=require(_0x43d7('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x43d7('0x13'));var as=require(_0x43d7('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x43d7('0x15'))(_0x43d7('0x16'));var utils=require('../../config/utils');var config=require(_0x43d7('0x17'));var licenseUtil=require(_0x43d7('0x18'));var db=require(_0x43d7('0x19'))['db'];function respondWithStatusCode(_0x4d7013,_0x5b7030){_0x5b7030=_0x5b7030||0xcc;return function(_0x72761f){if(_0x72761f){return _0x4d7013[_0x43d7('0x1a')](_0x5b7030);}return _0x4d7013[_0x43d7('0x1b')](_0x5b7030)[_0x43d7('0x1c')]();};}function respondWithResult(_0x1248b5,_0x47888c){_0x47888c=_0x47888c||0xc8;return function(_0xf44b6d){if(_0xf44b6d){return _0x1248b5[_0x43d7('0x1b')](_0x47888c)['json'](_0xf44b6d);}};}function respondWithFilteredResult(_0x583bcd,_0x2923b3){return function(_0x13b9d7){if(_0x13b9d7){var _0x27db1f=typeof _0x2923b3[_0x43d7('0x1d')]===_0x43d7('0x1e')&&typeof _0x2923b3['limit']==='undefined';var _0x26e492=_0x13b9d7[_0x43d7('0x1f')];var _0x579d78=_0x27db1f?0x0:_0x2923b3[_0x43d7('0x1d')];var _0x3a72d7=_0x27db1f?_0x13b9d7[_0x43d7('0x1f')]:_0x2923b3['offset']+_0x2923b3[_0x43d7('0x20')];var _0x40f409;if(_0x3a72d7>=_0x26e492){_0x3a72d7=_0x26e492;_0x40f409=0xc8;}else{_0x40f409=0xce;}_0x583bcd['status'](_0x40f409);return _0x583bcd[_0x43d7('0x21')]('Content-Range',_0x579d78+'-'+_0x3a72d7+'/'+_0x26e492)[_0x43d7('0x22')](_0x13b9d7);}return null;};}function patchUpdates(_0x47792b){return function(_0x41db5b){try{jsonpatch[_0x43d7('0x23')](_0x41db5b,_0x47792b,!![]);}catch(_0x458a00){return BPromise[_0x43d7('0x24')](_0x458a00);}return _0x41db5b[_0x43d7('0x25')]();};}function saveUpdates(_0x83a806,_0x24d810){return function(_0x44b5e3){if(_0x44b5e3){return _0x44b5e3[_0x43d7('0x26')](_0x83a806)[_0x43d7('0x27')](function(_0x48bb1e){return _0x48bb1e;});}return null;};}function removeEntity(_0x225fc5,_0x3c6217){return function(_0x14e549){if(_0x14e549){return _0x14e549[_0x43d7('0x28')]()['then'](function(){var _0x20f47d=_0x14e549[_0x43d7('0x29')]({'plain':!![]});var _0x53af45='Scheduler';return db[_0x43d7('0x2a')][_0x43d7('0x28')]({'where':{'type':_0x53af45,'resourceId':_0x20f47d['id']}})[_0x43d7('0x27')](function(){return _0x14e549;});})[_0x43d7('0x27')](function(){_0x225fc5['status'](0xcc)[_0x43d7('0x1c')]();});}};}function handleEntityNotFound(_0x2a497f,_0x1a8d89){return function(_0xfffdd5){if(!_0xfffdd5){_0x2a497f['sendStatus'](0x194);}return _0xfffdd5;};}function handleError(_0x58abd2,_0x577295){_0x577295=_0x577295||0x1f4;return function(_0xfa85d8){logger[_0x43d7('0x2b')](_0xfa85d8['stack']);if(_0xfa85d8[_0x43d7('0x2c')]){delete _0xfa85d8['name'];}_0x58abd2['status'](_0x577295)['send'](_0xfa85d8);};}exports[_0x43d7('0x2d')]=function(_0x40fd1b,_0x20e18e){var _0x1136f4={},_0x295029={},_0x4693fa={'count':0x0,'rows':[]};var _0xaa7e62=_[_0x43d7('0x2e')](db['Schedule'][_0x43d7('0x2f')],function(_0x4a9ad2){return{'name':_0x4a9ad2[_0x43d7('0x30')],'type':_0x4a9ad2[_0x43d7('0x31')]['key']};});_0x295029[_0x43d7('0x32')]=_[_0x43d7('0x2e')](_0xaa7e62,_0x43d7('0x2c'));_0x295029[_0x43d7('0x33')]=_[_0x43d7('0x34')](_0x40fd1b[_0x43d7('0x33')]);_0x295029[_0x43d7('0x35')]=_[_0x43d7('0x36')](_0x295029[_0x43d7('0x32')],_0x295029[_0x43d7('0x33')]);_0x1136f4['attributes']=_[_0x43d7('0x36')](_0x295029[_0x43d7('0x32')],qs[_0x43d7('0x37')](_0x40fd1b[_0x43d7('0x33')][_0x43d7('0x37')]));_0x1136f4[_0x43d7('0x38')]=_0x1136f4[_0x43d7('0x38')][_0x43d7('0x39')]?_0x1136f4[_0x43d7('0x38')]:_0x295029[_0x43d7('0x32')];if(!_0x40fd1b['query'][_0x43d7('0x3a')](_0x43d7('0x3b'))){_0x1136f4[_0x43d7('0x20')]=qs['limit'](_0x40fd1b[_0x43d7('0x33')][_0x43d7('0x20')]);_0x1136f4['offset']=qs[_0x43d7('0x1d')](_0x40fd1b[_0x43d7('0x33')]['offset']);}_0x1136f4['order']=qs[_0x43d7('0x3c')](_0x40fd1b[_0x43d7('0x33')][_0x43d7('0x3c')]);_0x1136f4[_0x43d7('0x3d')]=qs[_0x43d7('0x35')](_['pick'](_0x40fd1b[_0x43d7('0x33')],_0x295029['filters']),_0xaa7e62);if(_0x40fd1b['query'][_0x43d7('0x3e')]){_0x1136f4[_0x43d7('0x3d')]=_[_0x43d7('0x3f')](_0x1136f4[_0x43d7('0x3d')],{'$or':_[_0x43d7('0x2e')](_0xaa7e62,function(_0x19397a){if(_0x19397a[_0x43d7('0x31')]!==_0x43d7('0x40')){var _0x5baca0={};_0x5baca0[_0x19397a[_0x43d7('0x2c')]]={'$like':'%'+_0x40fd1b[_0x43d7('0x33')][_0x43d7('0x3e')]+'%'};return _0x5baca0;}})});}_0x1136f4=_[_0x43d7('0x3f')]({},_0x1136f4,_0x40fd1b[_0x43d7('0x41')]);var _0xf7eea9={'where':_0x1136f4[_0x43d7('0x3d')]};return db['Schedule'][_0x43d7('0x1f')](_0xf7eea9)['then'](function(_0x24c8c0){_0x4693fa[_0x43d7('0x1f')]=_0x24c8c0;if(_0x40fd1b['query']['includeAll']){_0x1136f4['include']=[{'all':!![]}];}return db['Schedule'][_0x43d7('0x42')](_0x1136f4);})[_0x43d7('0x27')](function(_0x1ee170){_0x4693fa[_0x43d7('0x43')]=_0x1ee170;return _0x4693fa;})[_0x43d7('0x27')](respondWithFilteredResult(_0x20e18e,_0x1136f4))[_0x43d7('0x44')](handleError(_0x20e18e,null));};exports[_0x43d7('0x45')]=function(_0x528e14,_0x52fb53){var _0x4de5c9={'raw':![],'where':{'id':_0x528e14[_0x43d7('0x46')]['id']}},_0x4e9f7b={};_0x4e9f7b[_0x43d7('0x32')]=_[_0x43d7('0x34')](db[_0x43d7('0x47')][_0x43d7('0x2f')]);_0x4e9f7b[_0x43d7('0x33')]=_[_0x43d7('0x34')](_0x528e14[_0x43d7('0x33')]);_0x4e9f7b[_0x43d7('0x35')]=_[_0x43d7('0x36')](_0x4e9f7b[_0x43d7('0x32')],_0x4e9f7b[_0x43d7('0x33')]);_0x4de5c9[_0x43d7('0x38')]=_[_0x43d7('0x36')](_0x4e9f7b['model'],qs[_0x43d7('0x37')](_0x528e14[_0x43d7('0x33')]['fields']));_0x4de5c9['attributes']=_0x4de5c9[_0x43d7('0x38')]['length']?_0x4de5c9[_0x43d7('0x38')]:_0x4e9f7b['model'];if(_0x528e14[_0x43d7('0x33')]['includeAll']){_0x4de5c9[_0x43d7('0x48')]=[{'all':!![]}];}_0x4de5c9=_[_0x43d7('0x3f')]({},_0x4de5c9,_0x528e14['options']);return db[_0x43d7('0x47')][_0x43d7('0x49')](_0x4de5c9)['then'](handleEntityNotFound(_0x52fb53,null))[_0x43d7('0x27')](respondWithResult(_0x52fb53,null))[_0x43d7('0x44')](handleError(_0x52fb53,null));};exports[_0x43d7('0x4a')]=function(_0x23b576,_0x375f3a){return db[_0x43d7('0x47')][_0x43d7('0x4a')](_0x23b576[_0x43d7('0x4b')],{})[_0x43d7('0x27')](function(_0x3f5199){var _0x1ae2e5=_0x23b576['user']['get']({'plain':!![]});if(!_0x1ae2e5)throw new Error(_0x43d7('0x4c'));if(_0x1ae2e5[_0x43d7('0x4d')]===_0x43d7('0x4e')){var _0x1b8c93=_0x3f5199[_0x43d7('0x29')]({'plain':!![]});var _0x53c2b8=_0x43d7('0x4f');return db[_0x43d7('0x50')][_0x43d7('0x49')]({'where':{'name':_0x53c2b8,'userProfileId':_0x1ae2e5['userProfileId']},'raw':!![]})[_0x43d7('0x27')](function(_0x3ae5f0){if(_0x3ae5f0&&_0x3ae5f0[_0x43d7('0x51')]===0x0){return db['UserProfileResource']['create']({'name':_0x1b8c93[_0x43d7('0x2c')],'resourceId':_0x1b8c93['id'],'type':_0x3ae5f0[_0x43d7('0x2c')],'sectionId':_0x3ae5f0['id']},{})[_0x43d7('0x27')](function(){return _0x3f5199;});}else{return _0x3f5199;}})[_0x43d7('0x44')](function(_0x2a4976){logger[_0x43d7('0x2b')](_0x43d7('0x52'),_0x2a4976);throw _0x2a4976;});}return _0x3f5199;})[_0x43d7('0x27')](respondWithResult(_0x375f3a,0xc9))[_0x43d7('0x44')](handleError(_0x375f3a,null));};exports[_0x43d7('0x26')]=function(_0x34206d,_0x35c828){if(_0x34206d[_0x43d7('0x4b')]['id']){delete _0x34206d[_0x43d7('0x4b')]['id'];}return db['Schedule']['find']({'where':{'id':_0x34206d[_0x43d7('0x46')]['id']}})['then'](handleEntityNotFound(_0x35c828,null))[_0x43d7('0x27')](saveUpdates(_0x34206d[_0x43d7('0x4b')],null))[_0x43d7('0x27')](respondWithResult(_0x35c828,null))[_0x43d7('0x44')](handleError(_0x35c828,null));};exports['destroy']=function(_0x4197d7,_0x2265fb){return db[_0x43d7('0x47')][_0x43d7('0x49')]({'where':{'id':_0x4197d7[_0x43d7('0x46')]['id']}})[_0x43d7('0x27')](handleEntityNotFound(_0x2265fb,null))[_0x43d7('0x27')](removeEntity(_0x2265fb,null))[_0x43d7('0x44')](handleError(_0x2265fb,null));};exports['run']=function(_0x2d1f4c,_0x628810,_0x332205){var _0x4ad3c2=require('../../config/schedule');return db[_0x43d7('0x47')]['find']({'where':{'id':_0x2d1f4c[_0x43d7('0x46')]['id']},'raw':!![]})[_0x43d7('0x27')](handleEntityNotFound(_0x628810,null))[_0x43d7('0x27')](function(){_0x4ad3c2[_0x43d7('0x53')](_0x2d1f4c['params']['id']);})[_0x43d7('0x27')](respondWithStatusCode(_0x628810,null))[_0x43d7('0x44')](handleError(_0x628810,null));};