Built motion from commit e6806ed6.|2.6.0
[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 _0x1ff8=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','Content-Range','apply','reject','save','then','get','UserProfileResource','destroy','name','index','rawAttributes','type','key','map','query','keys','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','filters','pick','filter','where','merge','VIRTUAL','options','Schedule','count','includeAll','findAll','catch','params','length','include','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Scheduler','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','run','../../config/schedule','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis'];(function(_0x503733,_0x17cad7){var _0x3d9738=function(_0xc41a73){while(--_0xc41a73){_0x503733['push'](_0x503733['shift']());}};_0x3d9738(++_0x17cad7);}(_0x1ff8,0x194));var _0x81ff=function(_0xbafd5f,_0x27cabb){_0xbafd5f=_0xbafd5f-0x0;var _0x148fad=_0x1ff8[_0xbafd5f];return _0x148fad;};'use strict';var emlformat=require(_0x81ff('0x0'));var rimraf=require(_0x81ff('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x81ff('0x2'));var rp=require(_0x81ff('0x3'));var moment=require('moment');var BPromise=require(_0x81ff('0x4'));var Mustache=require(_0x81ff('0x5'));var util=require(_0x81ff('0x6'));var path=require('path');var sox=require(_0x81ff('0x7'));var csv=require(_0x81ff('0x8'));var ejs=require(_0x81ff('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x81ff('0xa'));var squel=require('squel');var crypto=require(_0x81ff('0xb'));var jsforce=require(_0x81ff('0xc'));var deskjs=require(_0x81ff('0xd'));var toCsv=require(_0x81ff('0x8'));var querystring=require(_0x81ff('0xe'));var Papa=require('papaparse');var Redis=require(_0x81ff('0xf'));var authService=require(_0x81ff('0x10'));var qs=require(_0x81ff('0x11'));var as=require(_0x81ff('0x12'));var hardwareService=require(_0x81ff('0x13'));var logger=require(_0x81ff('0x14'))(_0x81ff('0x15'));var utils=require('../../config/utils');var config=require(_0x81ff('0x16'));var licenseUtil=require(_0x81ff('0x17'));var db=require(_0x81ff('0x18'))['db'];function respondWithStatusCode(_0x567438,_0x15aafb){_0x15aafb=_0x15aafb||0xcc;return function(_0x2b16d2){if(_0x2b16d2){return _0x567438[_0x81ff('0x19')](_0x15aafb);}return _0x567438[_0x81ff('0x1a')](_0x15aafb)['end']();};}function respondWithResult(_0x332239,_0x1790ec){_0x1790ec=_0x1790ec||0xc8;return function(_0x2e9db6){if(_0x2e9db6){return _0x332239[_0x81ff('0x1a')](_0x1790ec)[_0x81ff('0x1b')](_0x2e9db6);}};}function respondWithFilteredResult(_0x5ee147,_0x15acca){return function(_0x343f36){if(_0x343f36){var _0x133b3c=typeof _0x15acca[_0x81ff('0x1c')]===_0x81ff('0x1d')&&typeof _0x15acca[_0x81ff('0x1e')]===_0x81ff('0x1d');var _0x41564d=_0x343f36['count'];var _0x2f828c=_0x133b3c?0x0:_0x15acca[_0x81ff('0x1c')];var _0x16655c=_0x133b3c?_0x343f36['count']:_0x15acca['offset']+_0x15acca['limit'];var _0x18b67e;if(_0x16655c>=_0x41564d){_0x16655c=_0x41564d;_0x18b67e=0xc8;}else{_0x18b67e=0xce;}_0x5ee147[_0x81ff('0x1a')](_0x18b67e);return _0x5ee147['set'](_0x81ff('0x1f'),_0x2f828c+'-'+_0x16655c+'/'+_0x41564d)[_0x81ff('0x1b')](_0x343f36);}return null;};}function patchUpdates(_0x356b4f){return function(_0x443231){try{jsonpatch[_0x81ff('0x20')](_0x443231,_0x356b4f,!![]);}catch(_0x91aeb6){return BPromise[_0x81ff('0x21')](_0x91aeb6);}return _0x443231[_0x81ff('0x22')]();};}function saveUpdates(_0x56527e,_0xc1b9c0){return function(_0x317f05){if(_0x317f05){return _0x317f05['update'](_0x56527e)[_0x81ff('0x23')](function(_0x37d195){return _0x37d195;});}return null;};}function removeEntity(_0x2d861c,_0x561042){return function(_0x273b42){if(_0x273b42){return _0x273b42['destroy']()[_0x81ff('0x23')](function(){var _0x3bd1a0=_0x273b42[_0x81ff('0x24')]({'plain':!![]});var _0x1a0ab0='Scheduler';return db[_0x81ff('0x25')][_0x81ff('0x26')]({'where':{'type':_0x1a0ab0,'resourceId':_0x3bd1a0['id']}})[_0x81ff('0x23')](function(){return _0x273b42;});})['then'](function(){_0x2d861c[_0x81ff('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d2855,_0x3a4844){return function(_0x261288){if(!_0x261288){_0x1d2855['sendStatus'](0x194);}return _0x261288;};}function handleError(_0x33119b,_0x267a3f){_0x267a3f=_0x267a3f||0x1f4;return function(_0x4322b3){logger['error'](_0x4322b3['stack']);if(_0x4322b3['name']){delete _0x4322b3[_0x81ff('0x27')];}_0x33119b[_0x81ff('0x1a')](_0x267a3f)['send'](_0x4322b3);};}exports[_0x81ff('0x28')]=function(_0x195573,_0x23b11f){var _0x384597={},_0x377010={},_0x366b3e={'count':0x0,'rows':[]};var _0x278895=_['map'](db['Schedule'][_0x81ff('0x29')],function(_0x43af28){return{'name':_0x43af28['fieldName'],'type':_0x43af28[_0x81ff('0x2a')][_0x81ff('0x2b')]};});_0x377010['model']=_[_0x81ff('0x2c')](_0x278895,_0x81ff('0x27'));_0x377010[_0x81ff('0x2d')]=_[_0x81ff('0x2e')](_0x195573['query']);_0x377010['filters']=_[_0x81ff('0x2f')](_0x377010[_0x81ff('0x30')],_0x377010[_0x81ff('0x2d')]);_0x384597[_0x81ff('0x31')]=_[_0x81ff('0x2f')](_0x377010[_0x81ff('0x30')],qs[_0x81ff('0x32')](_0x195573['query'][_0x81ff('0x32')]));_0x384597[_0x81ff('0x31')]=_0x384597['attributes']['length']?_0x384597[_0x81ff('0x31')]:_0x377010['model'];if(!_0x195573[_0x81ff('0x2d')][_0x81ff('0x33')](_0x81ff('0x34'))){_0x384597[_0x81ff('0x1e')]=qs[_0x81ff('0x1e')](_0x195573[_0x81ff('0x2d')][_0x81ff('0x1e')]);_0x384597[_0x81ff('0x1c')]=qs[_0x81ff('0x1c')](_0x195573[_0x81ff('0x2d')][_0x81ff('0x1c')]);}_0x384597['order']=qs[_0x81ff('0x35')](_0x195573[_0x81ff('0x2d')][_0x81ff('0x35')]);_0x384597['where']=qs[_0x81ff('0x36')](_[_0x81ff('0x37')](_0x195573[_0x81ff('0x2d')],_0x377010[_0x81ff('0x36')]),_0x278895);if(_0x195573[_0x81ff('0x2d')][_0x81ff('0x38')]){_0x384597[_0x81ff('0x39')]=_[_0x81ff('0x3a')](_0x384597['where'],{'$or':_['map'](_0x278895,function(_0x542ab2){if(_0x542ab2['type']!==_0x81ff('0x3b')){var _0x1f599b={};_0x1f599b[_0x542ab2[_0x81ff('0x27')]]={'$like':'%'+_0x195573[_0x81ff('0x2d')][_0x81ff('0x38')]+'%'};return _0x1f599b;}})});}_0x384597=_[_0x81ff('0x3a')]({},_0x384597,_0x195573[_0x81ff('0x3c')]);var _0x118893={'where':_0x384597[_0x81ff('0x39')]};return db[_0x81ff('0x3d')]['count'](_0x118893)[_0x81ff('0x23')](function(_0xb0999c){_0x366b3e[_0x81ff('0x3e')]=_0xb0999c;if(_0x195573['query'][_0x81ff('0x3f')]){_0x384597['include']=[{'all':!![]}];}return db['Schedule'][_0x81ff('0x40')](_0x384597);})[_0x81ff('0x23')](function(_0x49c4a2){_0x366b3e['rows']=_0x49c4a2;return _0x366b3e;})[_0x81ff('0x23')](respondWithFilteredResult(_0x23b11f,_0x384597))[_0x81ff('0x41')](handleError(_0x23b11f,null));};exports['show']=function(_0x500a00,_0x1f6c57){var _0x2f2e7e={'raw':![],'where':{'id':_0x500a00[_0x81ff('0x42')]['id']}},_0x29ab66={};_0x29ab66['model']=_['keys'](db[_0x81ff('0x3d')][_0x81ff('0x29')]);_0x29ab66[_0x81ff('0x2d')]=_[_0x81ff('0x2e')](_0x500a00['query']);_0x29ab66[_0x81ff('0x36')]=_['intersection'](_0x29ab66[_0x81ff('0x30')],_0x29ab66[_0x81ff('0x2d')]);_0x2f2e7e[_0x81ff('0x31')]=_['intersection'](_0x29ab66[_0x81ff('0x30')],qs['fields'](_0x500a00[_0x81ff('0x2d')][_0x81ff('0x32')]));_0x2f2e7e[_0x81ff('0x31')]=_0x2f2e7e['attributes'][_0x81ff('0x43')]?_0x2f2e7e[_0x81ff('0x31')]:_0x29ab66[_0x81ff('0x30')];if(_0x500a00[_0x81ff('0x2d')]['includeAll']){_0x2f2e7e[_0x81ff('0x44')]=[{'all':!![]}];}_0x2f2e7e=_[_0x81ff('0x3a')]({},_0x2f2e7e,_0x500a00[_0x81ff('0x3c')]);return db[_0x81ff('0x3d')][_0x81ff('0x45')](_0x2f2e7e)['then'](handleEntityNotFound(_0x1f6c57,null))['then'](respondWithResult(_0x1f6c57,null))[_0x81ff('0x41')](handleError(_0x1f6c57,null));};exports[_0x81ff('0x46')]=function(_0x2ff282,_0x40101c){return db[_0x81ff('0x3d')][_0x81ff('0x46')](_0x2ff282['body'],{})['then'](function(_0x52edfb){var _0x2c5c22=_0x2ff282[_0x81ff('0x47')][_0x81ff('0x24')]({'plain':!![]});if(!_0x2c5c22)throw new Error(_0x81ff('0x48'));if(_0x2c5c22[_0x81ff('0x49')]===_0x81ff('0x47')){var _0x1e6b20=_0x52edfb[_0x81ff('0x24')]({'plain':!![]});var _0x13767c=_0x81ff('0x4a');return db[_0x81ff('0x4b')][_0x81ff('0x45')]({'where':{'name':_0x13767c,'userProfileId':_0x2c5c22[_0x81ff('0x4c')]},'raw':!![]})[_0x81ff('0x23')](function(_0x3663e6){if(_0x3663e6&&_0x3663e6[_0x81ff('0x4d')]===0x0){return db[_0x81ff('0x25')][_0x81ff('0x46')]({'name':_0x1e6b20['name'],'resourceId':_0x1e6b20['id'],'type':_0x3663e6[_0x81ff('0x27')],'sectionId':_0x3663e6['id']},{})[_0x81ff('0x23')](function(){return _0x52edfb;});}else{return _0x52edfb;}})[_0x81ff('0x41')](function(_0x250e74){logger[_0x81ff('0x4e')](_0x81ff('0x4f'),_0x250e74);throw _0x250e74;});}return _0x52edfb;})[_0x81ff('0x23')](respondWithResult(_0x40101c,0xc9))['catch'](handleError(_0x40101c,null));};exports[_0x81ff('0x50')]=function(_0x33e20d,_0x4a772a){if(_0x33e20d[_0x81ff('0x51')]['id']){delete _0x33e20d[_0x81ff('0x51')]['id'];}return db[_0x81ff('0x3d')][_0x81ff('0x45')]({'where':{'id':_0x33e20d['params']['id']}})[_0x81ff('0x23')](handleEntityNotFound(_0x4a772a,null))[_0x81ff('0x23')](saveUpdates(_0x33e20d[_0x81ff('0x51')],null))[_0x81ff('0x23')](respondWithResult(_0x4a772a,null))['catch'](handleError(_0x4a772a,null));};exports['destroy']=function(_0x3080d8,_0x2f8d24){return db['Schedule'][_0x81ff('0x45')]({'where':{'id':_0x3080d8[_0x81ff('0x42')]['id']}})['then'](handleEntityNotFound(_0x2f8d24,null))['then'](removeEntity(_0x2f8d24,null))[_0x81ff('0x41')](handleError(_0x2f8d24,null));};exports[_0x81ff('0x52')]=function(_0x5b69f7,_0x753ee6,_0x38a985){var _0x45baae=require(_0x81ff('0x53'));return db[_0x81ff('0x3d')]['find']({'where':{'id':_0x5b69f7[_0x81ff('0x42')]['id']},'raw':!![]})[_0x81ff('0x23')](handleEntityNotFound(_0x753ee6,null))[_0x81ff('0x23')](function(){_0x45baae[_0x81ff('0x52')](_0x5b69f7[_0x81ff('0x42')]['id']);})[_0x81ff('0x23')](respondWithStatusCode(_0x753ee6,null))[_0x81ff('0x41')](handleError(_0x753ee6,null));};