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 _0x44d3=['apply','reject','save','update','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','send','map','rawAttributes','type','key','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','Schedule','count','include','findAll','catch','params','model','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','run','../../config/schedule','eml-format','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','offset','limit','undefined','set','Content-Range'];(function(_0x244862,_0x3da79e){var _0x2bce23=function(_0x235ae5){while(--_0x235ae5){_0x244862['push'](_0x244862['shift']());}};_0x2bce23(++_0x3da79e);}(_0x44d3,0x125));var _0x344d=function(_0x376103,_0x55c2c1){_0x376103=_0x376103-0x0;var _0x104cdd=_0x44d3[_0x376103];return _0x104cdd;};'use strict';var emlformat=require(_0x344d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x344d('0x1'));var moment=require('moment');var BPromise=require(_0x344d('0x2'));var Mustache=require(_0x344d('0x3'));var util=require('util');var path=require(_0x344d('0x4'));var sox=require(_0x344d('0x5'));var csv=require(_0x344d('0x6'));var ejs=require(_0x344d('0x7'));var fs=require('fs');var fs_extra=require(_0x344d('0x8'));var _=require(_0x344d('0x9'));var squel=require(_0x344d('0xa'));var crypto=require(_0x344d('0xb'));var jsforce=require(_0x344d('0xc'));var deskjs=require(_0x344d('0xd'));var toCsv=require(_0x344d('0x6'));var querystring=require('querystring');var Papa=require(_0x344d('0xe'));var Redis=require(_0x344d('0xf'));var authService=require(_0x344d('0x10'));var qs=require(_0x344d('0x11'));var as=require(_0x344d('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x344d('0x13'));var utils=require(_0x344d('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x344d('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3c2380,_0xb947b){_0xb947b=_0xb947b||0xcc;return function(_0xddb6f1){if(_0xddb6f1){return _0x3c2380[_0x344d('0x16')](_0xb947b);}return _0x3c2380[_0x344d('0x17')](_0xb947b)[_0x344d('0x18')]();};}function respondWithResult(_0x35e83c,_0x31cc85){_0x31cc85=_0x31cc85||0xc8;return function(_0x5fd3c9){if(_0x5fd3c9){return _0x35e83c[_0x344d('0x17')](_0x31cc85)[_0x344d('0x19')](_0x5fd3c9);}};}function respondWithFilteredResult(_0x4c1e7b,_0x41e9c2){return function(_0x449899){if(_0x449899){var _0xb85465=typeof _0x41e9c2[_0x344d('0x1a')]==='undefined'&&typeof _0x41e9c2[_0x344d('0x1b')]===_0x344d('0x1c');var _0x1a0e21=_0x449899['count'];var _0x2bf28d=_0xb85465?0x0:_0x41e9c2['offset'];var _0x31c410=_0xb85465?_0x449899['count']:_0x41e9c2[_0x344d('0x1a')]+_0x41e9c2[_0x344d('0x1b')];var _0x46ac5e;if(_0x31c410>=_0x1a0e21){_0x31c410=_0x1a0e21;_0x46ac5e=0xc8;}else{_0x46ac5e=0xce;}_0x4c1e7b[_0x344d('0x17')](_0x46ac5e);return _0x4c1e7b[_0x344d('0x1d')](_0x344d('0x1e'),_0x2bf28d+'-'+_0x31c410+'/'+_0x1a0e21)[_0x344d('0x19')](_0x449899);}return null;};}function patchUpdates(_0xdd8d0a){return function(_0x1178f8){try{jsonpatch[_0x344d('0x1f')](_0x1178f8,_0xdd8d0a,!![]);}catch(_0x15d820){return BPromise[_0x344d('0x20')](_0x15d820);}return _0x1178f8[_0x344d('0x21')]();};}function saveUpdates(_0x260599,_0x14a8a0){return function(_0x4a84c9){if(_0x4a84c9){return _0x4a84c9[_0x344d('0x22')](_0x260599)[_0x344d('0x23')](function(_0x166876){return _0x166876;});}return null;};}function removeEntity(_0x52fa41,_0x5ee761){return function(_0x1d581a){if(_0x1d581a){return _0x1d581a[_0x344d('0x24')]()[_0x344d('0x23')](function(){var _0x43cd3e=_0x1d581a[_0x344d('0x25')]({'plain':!![]});var _0x39884a=_0x344d('0x26');return db[_0x344d('0x27')][_0x344d('0x24')]({'where':{'type':_0x39884a,'resourceId':_0x43cd3e['id']}})[_0x344d('0x23')](function(){return _0x1d581a;});})[_0x344d('0x23')](function(){_0x52fa41[_0x344d('0x17')](0xcc)[_0x344d('0x18')]();});}};}function handleEntityNotFound(_0xaa05d6,_0x2648a9){return function(_0x2b5c39){if(!_0x2b5c39){_0xaa05d6['sendStatus'](0x194);}return _0x2b5c39;};}function handleError(_0x4b2316,_0x13c476){_0x13c476=_0x13c476||0x1f4;return function(_0x418278){logger[_0x344d('0x28')](_0x418278[_0x344d('0x29')]);if(_0x418278['name']){delete _0x418278[_0x344d('0x2a')];}_0x4b2316[_0x344d('0x17')](_0x13c476)[_0x344d('0x2b')](_0x418278);};}exports['index']=function(_0x52ef07,_0x134873){var _0x10515d={},_0x55646a={},_0x7ea5e1={'count':0x0,'rows':[]};var _0xae5ac4=_[_0x344d('0x2c')](db['Schedule'][_0x344d('0x2d')],function(_0x532212){return{'name':_0x532212['fieldName'],'type':_0x532212[_0x344d('0x2e')][_0x344d('0x2f')]};});_0x55646a['model']=_[_0x344d('0x2c')](_0xae5ac4,'name');_0x55646a[_0x344d('0x30')]=_[_0x344d('0x31')](_0x52ef07[_0x344d('0x30')]);_0x55646a['filters']=_[_0x344d('0x32')](_0x55646a['model'],_0x55646a[_0x344d('0x30')]);_0x10515d[_0x344d('0x33')]=_['intersection'](_0x55646a['model'],qs[_0x344d('0x34')](_0x52ef07[_0x344d('0x30')]['fields']));_0x10515d[_0x344d('0x33')]=_0x10515d['attributes']['length']?_0x10515d[_0x344d('0x33')]:_0x55646a['model'];if(!_0x52ef07[_0x344d('0x30')][_0x344d('0x35')](_0x344d('0x36'))){_0x10515d[_0x344d('0x1b')]=qs[_0x344d('0x1b')](_0x52ef07[_0x344d('0x30')][_0x344d('0x1b')]);_0x10515d['offset']=qs[_0x344d('0x1a')](_0x52ef07[_0x344d('0x30')][_0x344d('0x1a')]);}_0x10515d[_0x344d('0x37')]=qs[_0x344d('0x38')](_0x52ef07['query']['sort']);_0x10515d[_0x344d('0x39')]=qs[_0x344d('0x3a')](_['pick'](_0x52ef07[_0x344d('0x30')],_0x55646a[_0x344d('0x3a')]),_0xae5ac4);if(_0x52ef07[_0x344d('0x30')][_0x344d('0x3b')]){_0x10515d[_0x344d('0x39')]=_[_0x344d('0x3c')](_0x10515d['where'],{'$or':_['map'](_0xae5ac4,function(_0x375bdf){if(_0x375bdf[_0x344d('0x2e')]!==_0x344d('0x3d')){var _0x4b095e={};_0x4b095e[_0x375bdf['name']]={'$like':'%'+_0x52ef07[_0x344d('0x30')][_0x344d('0x3b')]+'%'};return _0x4b095e;}})});}_0x10515d=_['merge']({},_0x10515d,_0x52ef07['options']);var _0x2a059c={'where':_0x10515d[_0x344d('0x39')]};return db[_0x344d('0x3e')][_0x344d('0x3f')](_0x2a059c)[_0x344d('0x23')](function(_0x1c9fa9){_0x7ea5e1[_0x344d('0x3f')]=_0x1c9fa9;if(_0x52ef07['query']['includeAll']){_0x10515d[_0x344d('0x40')]=[{'all':!![]}];}return db[_0x344d('0x3e')][_0x344d('0x41')](_0x10515d);})[_0x344d('0x23')](function(_0x2bd93d){_0x7ea5e1['rows']=_0x2bd93d;return _0x7ea5e1;})[_0x344d('0x23')](respondWithFilteredResult(_0x134873,_0x10515d))[_0x344d('0x42')](handleError(_0x134873,null));};exports['show']=function(_0x53c628,_0x275406){var _0x294ba6={'raw':![],'where':{'id':_0x53c628[_0x344d('0x43')]['id']}},_0x43c8b8={};_0x43c8b8[_0x344d('0x44')]=_[_0x344d('0x31')](db[_0x344d('0x3e')][_0x344d('0x2d')]);_0x43c8b8[_0x344d('0x30')]=_['keys'](_0x53c628[_0x344d('0x30')]);_0x43c8b8['filters']=_[_0x344d('0x32')](_0x43c8b8[_0x344d('0x44')],_0x43c8b8[_0x344d('0x30')]);_0x294ba6[_0x344d('0x33')]=_[_0x344d('0x32')](_0x43c8b8[_0x344d('0x44')],qs[_0x344d('0x34')](_0x53c628[_0x344d('0x30')][_0x344d('0x34')]));_0x294ba6['attributes']=_0x294ba6[_0x344d('0x33')]['length']?_0x294ba6['attributes']:_0x43c8b8[_0x344d('0x44')];if(_0x53c628[_0x344d('0x30')]['includeAll']){_0x294ba6[_0x344d('0x40')]=[{'all':!![]}];}_0x294ba6=_[_0x344d('0x3c')]({},_0x294ba6,_0x53c628[_0x344d('0x45')]);return db['Schedule'][_0x344d('0x46')](_0x294ba6)['then'](handleEntityNotFound(_0x275406,null))[_0x344d('0x23')](respondWithResult(_0x275406,null))['catch'](handleError(_0x275406,null));};exports[_0x344d('0x47')]=function(_0x3a0a98,_0x488ef1){return db['Schedule'][_0x344d('0x47')](_0x3a0a98[_0x344d('0x48')],{})[_0x344d('0x23')](function(_0x5519d1){var _0x11b6f8=_0x3a0a98[_0x344d('0x49')][_0x344d('0x25')]({'plain':!![]});if(!_0x11b6f8)throw new Error(_0x344d('0x4a'));if(_0x11b6f8[_0x344d('0x4b')]==='user'){var _0x54aab1=_0x5519d1[_0x344d('0x25')]({'plain':!![]});var _0x972eae=_0x344d('0x26');return db[_0x344d('0x4c')][_0x344d('0x46')]({'where':{'name':_0x972eae,'userProfileId':_0x11b6f8[_0x344d('0x4d')]},'raw':!![]})[_0x344d('0x23')](function(_0x3c5efa){if(_0x3c5efa&&_0x3c5efa[_0x344d('0x4e')]===0x0){return db[_0x344d('0x27')][_0x344d('0x47')]({'name':_0x54aab1[_0x344d('0x2a')],'resourceId':_0x54aab1['id'],'type':_0x3c5efa['name'],'sectionId':_0x3c5efa['id']},{})[_0x344d('0x23')](function(){return _0x5519d1;});}else{return _0x5519d1;}})[_0x344d('0x42')](function(_0x1bf4e0){logger[_0x344d('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1bf4e0);throw _0x1bf4e0;});}return _0x5519d1;})['then'](respondWithResult(_0x488ef1,0xc9))[_0x344d('0x42')](handleError(_0x488ef1,null));};exports['update']=function(_0xa7972f,_0x2d4e49){if(_0xa7972f[_0x344d('0x48')]['id']){delete _0xa7972f[_0x344d('0x48')]['id'];}return db[_0x344d('0x3e')]['find']({'where':{'id':_0xa7972f[_0x344d('0x43')]['id']}})[_0x344d('0x23')](handleEntityNotFound(_0x2d4e49,null))[_0x344d('0x23')](saveUpdates(_0xa7972f['body'],null))[_0x344d('0x23')](respondWithResult(_0x2d4e49,null))['catch'](handleError(_0x2d4e49,null));};exports[_0x344d('0x24')]=function(_0x1b37fe,_0x60ca21){return db[_0x344d('0x3e')][_0x344d('0x46')]({'where':{'id':_0x1b37fe[_0x344d('0x43')]['id']}})[_0x344d('0x23')](handleEntityNotFound(_0x60ca21,null))[_0x344d('0x23')](removeEntity(_0x60ca21,null))[_0x344d('0x42')](handleError(_0x60ca21,null));};exports[_0x344d('0x4f')]=function(_0x1c497c,_0x3aff99,_0x2a92f3){var _0x27ef87=require(_0x344d('0x50'));return db[_0x344d('0x3e')][_0x344d('0x46')]({'where':{'id':_0x1c497c['params']['id']},'raw':!![]})['then'](handleEntityNotFound(_0x3aff99,null))['then'](function(){_0x27ef87[_0x344d('0x4f')](_0x1c497c['params']['id']);})[_0x344d('0x23')](respondWithStatusCode(_0x3aff99,null))['catch'](handleError(_0x3aff99,null));};