3edbed79d091dd3c2e25eb4d88d1b63935ac1976
[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 _0xa493=['find','create','body','user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','run','../../config/schedule','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','save','update','destroy','then','get','Scheduler','UserProfileResource','error','stack','name','send','index','map','Schedule','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','length','include'];(function(_0xd5bc13,_0x4b5b7c){var _0x5b9baf=function(_0x2f42c3){while(--_0x2f42c3){_0xd5bc13['push'](_0xd5bc13['shift']());}};_0x5b9baf(++_0x4b5b7c);}(_0xa493,0x107));var _0x3a49=function(_0xaa1b3e,_0x47d976){_0xaa1b3e=_0xaa1b3e-0x0;var _0x454d7d=_0xa493[_0xaa1b3e];return _0x454d7d;};'use strict';var emlformat=require(_0x3a49('0x0'));var rimraf=require(_0x3a49('0x1'));var zipdir=require(_0x3a49('0x2'));var jsonpatch=require(_0x3a49('0x3'));var rp=require('request-promise');var moment=require(_0x3a49('0x4'));var BPromise=require(_0x3a49('0x5'));var Mustache=require('mustache');var util=require(_0x3a49('0x6'));var path=require('path');var sox=require(_0x3a49('0x7'));var csv=require(_0x3a49('0x8'));var ejs=require(_0x3a49('0x9'));var fs=require('fs');var fs_extra=require(_0x3a49('0xa'));var _=require(_0x3a49('0xb'));var squel=require(_0x3a49('0xc'));var crypto=require(_0x3a49('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x3a49('0xe'));var toCsv=require(_0x3a49('0x8'));var querystring=require(_0x3a49('0xf'));var Papa=require(_0x3a49('0x10'));var Redis=require(_0x3a49('0x11'));var authService=require(_0x3a49('0x12'));var qs=require(_0x3a49('0x13'));var as=require(_0x3a49('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x3a49('0x15'));var config=require(_0x3a49('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x3a49('0x17'))['db'];function respondWithStatusCode(_0x2430b0,_0x46437f){_0x46437f=_0x46437f||0xcc;return function(_0x5dd4ec){if(_0x5dd4ec){return _0x2430b0[_0x3a49('0x18')](_0x46437f);}return _0x2430b0[_0x3a49('0x19')](_0x46437f)[_0x3a49('0x1a')]();};}function respondWithResult(_0x7371d5,_0x2c0ace){_0x2c0ace=_0x2c0ace||0xc8;return function(_0x301657){if(_0x301657){return _0x7371d5[_0x3a49('0x19')](_0x2c0ace)[_0x3a49('0x1b')](_0x301657);}};}function respondWithFilteredResult(_0x509a03,_0x36d3c3){return function(_0x52bc86){if(_0x52bc86){var _0x5742f1=typeof _0x36d3c3[_0x3a49('0x1c')]===_0x3a49('0x1d')&&typeof _0x36d3c3[_0x3a49('0x1e')]==='undefined';var _0x42040f=_0x52bc86[_0x3a49('0x1f')];var _0xe0aa2e=_0x5742f1?0x0:_0x36d3c3[_0x3a49('0x1c')];var _0x6a8b83=_0x5742f1?_0x52bc86[_0x3a49('0x1f')]:_0x36d3c3[_0x3a49('0x1c')]+_0x36d3c3[_0x3a49('0x1e')];var _0x24eea7;if(_0x6a8b83>=_0x42040f){_0x6a8b83=_0x42040f;_0x24eea7=0xc8;}else{_0x24eea7=0xce;}_0x509a03[_0x3a49('0x19')](_0x24eea7);return _0x509a03[_0x3a49('0x20')](_0x3a49('0x21'),_0xe0aa2e+'-'+_0x6a8b83+'/'+_0x42040f)['json'](_0x52bc86);}return null;};}function patchUpdates(_0x2c0372){return function(_0x11ab70){try{jsonpatch['apply'](_0x11ab70,_0x2c0372,!![]);}catch(_0x3dbfa3){return BPromise['reject'](_0x3dbfa3);}return _0x11ab70[_0x3a49('0x22')]();};}function saveUpdates(_0x56a9e5,_0x17c467){return function(_0x637ead){if(_0x637ead){return _0x637ead[_0x3a49('0x23')](_0x56a9e5)['then'](function(_0xa74325){return _0xa74325;});}return null;};}function removeEntity(_0x21aede,_0x180e8b){return function(_0x182907){if(_0x182907){return _0x182907[_0x3a49('0x24')]()[_0x3a49('0x25')](function(){var _0xf240bc=_0x182907[_0x3a49('0x26')]({'plain':!![]});var _0x1f2fd7=_0x3a49('0x27');return db[_0x3a49('0x28')][_0x3a49('0x24')]({'where':{'type':_0x1f2fd7,'resourceId':_0xf240bc['id']}})['then'](function(){return _0x182907;});})[_0x3a49('0x25')](function(){_0x21aede[_0x3a49('0x19')](0xcc)[_0x3a49('0x1a')]();});}};}function handleEntityNotFound(_0x553d4d,_0x4f8489){return function(_0x18a7d4){if(!_0x18a7d4){_0x553d4d[_0x3a49('0x18')](0x194);}return _0x18a7d4;};}function handleError(_0x3f2547,_0x253ab4){_0x253ab4=_0x253ab4||0x1f4;return function(_0x18b38b){logger[_0x3a49('0x29')](_0x18b38b[_0x3a49('0x2a')]);if(_0x18b38b[_0x3a49('0x2b')]){delete _0x18b38b['name'];}_0x3f2547[_0x3a49('0x19')](_0x253ab4)[_0x3a49('0x2c')](_0x18b38b);};}exports[_0x3a49('0x2d')]=function(_0xc0b5d0,_0x5b4cc2){var _0x2553f8={},_0x3b1e14={},_0x353923={'count':0x0,'rows':[]};var _0x4787a4=_[_0x3a49('0x2e')](db[_0x3a49('0x2f')][_0x3a49('0x30')],function(_0x320944){return{'name':_0x320944[_0x3a49('0x31')],'type':_0x320944[_0x3a49('0x32')]['key']};});_0x3b1e14[_0x3a49('0x33')]=_[_0x3a49('0x2e')](_0x4787a4,_0x3a49('0x2b'));_0x3b1e14[_0x3a49('0x34')]=_[_0x3a49('0x35')](_0xc0b5d0[_0x3a49('0x34')]);_0x3b1e14[_0x3a49('0x36')]=_[_0x3a49('0x37')](_0x3b1e14['model'],_0x3b1e14[_0x3a49('0x34')]);_0x2553f8['attributes']=_[_0x3a49('0x37')](_0x3b1e14['model'],qs[_0x3a49('0x38')](_0xc0b5d0[_0x3a49('0x34')][_0x3a49('0x38')]));_0x2553f8[_0x3a49('0x39')]=_0x2553f8[_0x3a49('0x39')]['length']?_0x2553f8['attributes']:_0x3b1e14['model'];if(!_0xc0b5d0[_0x3a49('0x34')][_0x3a49('0x3a')]('nolimit')){_0x2553f8[_0x3a49('0x1e')]=qs[_0x3a49('0x1e')](_0xc0b5d0[_0x3a49('0x34')][_0x3a49('0x1e')]);_0x2553f8[_0x3a49('0x1c')]=qs[_0x3a49('0x1c')](_0xc0b5d0['query'][_0x3a49('0x1c')]);}_0x2553f8['order']=qs[_0x3a49('0x3b')](_0xc0b5d0[_0x3a49('0x34')][_0x3a49('0x3b')]);_0x2553f8[_0x3a49('0x3c')]=qs[_0x3a49('0x36')](_[_0x3a49('0x3d')](_0xc0b5d0[_0x3a49('0x34')],_0x3b1e14[_0x3a49('0x36')]),_0x4787a4);if(_0xc0b5d0[_0x3a49('0x34')][_0x3a49('0x3e')]){_0x2553f8[_0x3a49('0x3c')]=_[_0x3a49('0x3f')](_0x2553f8[_0x3a49('0x3c')],{'$or':_[_0x3a49('0x2e')](_0x4787a4,function(_0x300a0e){if(_0x300a0e[_0x3a49('0x32')]!==_0x3a49('0x40')){var _0x500553={};_0x500553[_0x300a0e[_0x3a49('0x2b')]]={'$like':'%'+_0xc0b5d0[_0x3a49('0x34')][_0x3a49('0x3e')]+'%'};return _0x500553;}})});}_0x2553f8=_['merge']({},_0x2553f8,_0xc0b5d0[_0x3a49('0x41')]);var _0x36ad02={'where':_0x2553f8[_0x3a49('0x3c')]};return db[_0x3a49('0x2f')]['count'](_0x36ad02)[_0x3a49('0x25')](function(_0x324b0e){_0x353923[_0x3a49('0x1f')]=_0x324b0e;if(_0xc0b5d0[_0x3a49('0x34')][_0x3a49('0x42')]){_0x2553f8['include']=[{'all':!![]}];}return db[_0x3a49('0x2f')][_0x3a49('0x43')](_0x2553f8);})[_0x3a49('0x25')](function(_0x138769){_0x353923[_0x3a49('0x44')]=_0x138769;return _0x353923;})[_0x3a49('0x25')](respondWithFilteredResult(_0x5b4cc2,_0x2553f8))[_0x3a49('0x45')](handleError(_0x5b4cc2,null));};exports[_0x3a49('0x46')]=function(_0x19f6c2,_0x3ac9bb){var _0x3f1784={'raw':![],'where':{'id':_0x19f6c2['params']['id']}},_0x4d0642={};_0x4d0642[_0x3a49('0x33')]=_['keys'](db['Schedule'][_0x3a49('0x30')]);_0x4d0642[_0x3a49('0x34')]=_[_0x3a49('0x35')](_0x19f6c2[_0x3a49('0x34')]);_0x4d0642[_0x3a49('0x36')]=_[_0x3a49('0x37')](_0x4d0642[_0x3a49('0x33')],_0x4d0642[_0x3a49('0x34')]);_0x3f1784['attributes']=_[_0x3a49('0x37')](_0x4d0642[_0x3a49('0x33')],qs[_0x3a49('0x38')](_0x19f6c2[_0x3a49('0x34')][_0x3a49('0x38')]));_0x3f1784[_0x3a49('0x39')]=_0x3f1784[_0x3a49('0x39')][_0x3a49('0x47')]?_0x3f1784[_0x3a49('0x39')]:_0x4d0642[_0x3a49('0x33')];if(_0x19f6c2['query']['includeAll']){_0x3f1784[_0x3a49('0x48')]=[{'all':!![]}];}_0x3f1784=_['merge']({},_0x3f1784,_0x19f6c2[_0x3a49('0x41')]);return db[_0x3a49('0x2f')][_0x3a49('0x49')](_0x3f1784)[_0x3a49('0x25')](handleEntityNotFound(_0x3ac9bb,null))[_0x3a49('0x25')](respondWithResult(_0x3ac9bb,null))[_0x3a49('0x45')](handleError(_0x3ac9bb,null));};exports[_0x3a49('0x4a')]=function(_0x24bdef,_0x5d9f68){return db['Schedule'][_0x3a49('0x4a')](_0x24bdef[_0x3a49('0x4b')],{})[_0x3a49('0x25')](function(_0x31053b){var _0x52f1d5=_0x24bdef[_0x3a49('0x4c')][_0x3a49('0x26')]({'plain':!![]});if(!_0x52f1d5)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x52f1d5[_0x3a49('0x4d')]===_0x3a49('0x4c')){var _0x25a8ed=_0x31053b[_0x3a49('0x26')]({'plain':!![]});var _0x3c67c5=_0x3a49('0x27');return db[_0x3a49('0x4e')]['find']({'where':{'name':_0x3c67c5,'userProfileId':_0x52f1d5['userProfileId']},'raw':!![]})[_0x3a49('0x25')](function(_0x29d40f){if(_0x29d40f&&_0x29d40f[_0x3a49('0x4f')]===0x0){return db['UserProfileResource'][_0x3a49('0x4a')]({'name':_0x25a8ed[_0x3a49('0x2b')],'resourceId':_0x25a8ed['id'],'type':_0x29d40f[_0x3a49('0x2b')],'sectionId':_0x29d40f['id']},{})['then'](function(){return _0x31053b;});}else{return _0x31053b;}})[_0x3a49('0x45')](function(_0x1bc931){logger[_0x3a49('0x29')](_0x3a49('0x50'),_0x1bc931);throw _0x1bc931;});}return _0x31053b;})[_0x3a49('0x25')](respondWithResult(_0x5d9f68,0xc9))[_0x3a49('0x45')](handleError(_0x5d9f68,null));};exports['update']=function(_0x3f0ed6,_0x500e96){if(_0x3f0ed6[_0x3a49('0x4b')]['id']){delete _0x3f0ed6['body']['id'];}return db[_0x3a49('0x2f')][_0x3a49('0x49')]({'where':{'id':_0x3f0ed6[_0x3a49('0x51')]['id']}})[_0x3a49('0x25')](handleEntityNotFound(_0x500e96,null))[_0x3a49('0x25')](saveUpdates(_0x3f0ed6[_0x3a49('0x4b')],null))[_0x3a49('0x25')](respondWithResult(_0x500e96,null))[_0x3a49('0x45')](handleError(_0x500e96,null));};exports[_0x3a49('0x24')]=function(_0x42d193,_0x46547a){return db['Schedule'][_0x3a49('0x49')]({'where':{'id':_0x42d193[_0x3a49('0x51')]['id']}})['then'](handleEntityNotFound(_0x46547a,null))[_0x3a49('0x25')](removeEntity(_0x46547a,null))[_0x3a49('0x45')](handleError(_0x46547a,null));};exports[_0x3a49('0x52')]=function(_0x293407,_0x415087,_0x447789){var _0x5a0515=require(_0x3a49('0x53'));return db[_0x3a49('0x2f')][_0x3a49('0x49')]({'where':{'id':_0x293407[_0x3a49('0x51')]['id']},'raw':!![]})[_0x3a49('0x25')](handleEntityNotFound(_0x415087,null))[_0x3a49('0x25')](function(){_0x5a0515['run'](_0x293407['params']['id']);})[_0x3a49('0x25')](respondWithStatusCode(_0x415087,null))[_0x3a49('0x45')](handleError(_0x415087,null));};