Built motion from commit e2351160.|2.5.50
[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 _0xc81e=['path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Scheduler','sendStatus','error','stack','name','send','map','fieldName','type','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','Schedule','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','UserProfileResource','body','../../config/schedule','rimraf','zip-dir','request-promise','bluebird','util'];(function(_0x40bffc,_0x3a45d7){var _0x3007e9=function(_0x4c8fda){while(--_0x4c8fda){_0x40bffc['push'](_0x40bffc['shift']());}};_0x3007e9(++_0x3a45d7);}(_0xc81e,0xa1));var _0xec81=function(_0x368bba,_0x1f625b){_0x368bba=_0x368bba-0x0;var _0x409f8f=_0xc81e[_0x368bba];return _0x409f8f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xec81('0x0'));var zipdir=require(_0xec81('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xec81('0x2'));var moment=require('moment');var BPromise=require(_0xec81('0x3'));var Mustache=require('mustache');var util=require(_0xec81('0x4'));var path=require(_0xec81('0x5'));var sox=require(_0xec81('0x6'));var csv=require(_0xec81('0x7'));var ejs=require(_0xec81('0x8'));var fs=require('fs');var fs_extra=require(_0xec81('0x9'));var _=require(_0xec81('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xec81('0xb'));var deskjs=require(_0xec81('0xc'));var toCsv=require(_0xec81('0x7'));var querystring=require(_0xec81('0xd'));var Papa=require(_0xec81('0xe'));var Redis=require(_0xec81('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xec81('0x10'));var as=require(_0xec81('0x11'));var hardwareService=require(_0xec81('0x12'));var logger=require('../../config/logger')(_0xec81('0x13'));var utils=require(_0xec81('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xec81('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4cc0cc,_0x127f83){_0x127f83=_0x127f83||0xcc;return function(_0x5ddc48){if(_0x5ddc48){return _0x4cc0cc['sendStatus'](_0x127f83);}return _0x4cc0cc[_0xec81('0x16')](_0x127f83)[_0xec81('0x17')]();};}function respondWithResult(_0xc84bde,_0x346f7d){_0x346f7d=_0x346f7d||0xc8;return function(_0x8491b6){if(_0x8491b6){return _0xc84bde[_0xec81('0x16')](_0x346f7d)[_0xec81('0x18')](_0x8491b6);}};}function respondWithFilteredResult(_0x142578,_0x26d120){return function(_0x1b436a){if(_0x1b436a){var _0x4fb53d=typeof _0x26d120[_0xec81('0x19')]===_0xec81('0x1a')&&typeof _0x26d120[_0xec81('0x1b')]==='undefined';var _0x5e3ee7=_0x1b436a[_0xec81('0x1c')];var _0x2b323d=_0x4fb53d?0x0:_0x26d120[_0xec81('0x19')];var _0x14fc01=_0x4fb53d?_0x1b436a[_0xec81('0x1c')]:_0x26d120[_0xec81('0x19')]+_0x26d120['limit'];var _0x52b1a9;if(_0x14fc01>=_0x5e3ee7){_0x14fc01=_0x5e3ee7;_0x52b1a9=0xc8;}else{_0x52b1a9=0xce;}_0x142578['status'](_0x52b1a9);return _0x142578[_0xec81('0x1d')](_0xec81('0x1e'),_0x2b323d+'-'+_0x14fc01+'/'+_0x5e3ee7)['json'](_0x1b436a);}return null;};}function patchUpdates(_0x13f8d7){return function(_0x175e3a){try{jsonpatch[_0xec81('0x1f')](_0x175e3a,_0x13f8d7,!![]);}catch(_0x2e799a){return BPromise[_0xec81('0x20')](_0x2e799a);}return _0x175e3a[_0xec81('0x21')]();};}function saveUpdates(_0x467f14,_0x17aedf){return function(_0x5b0a14){if(_0x5b0a14){return _0x5b0a14[_0xec81('0x22')](_0x467f14)[_0xec81('0x23')](function(_0x3adebe){return _0x3adebe;});}return null;};}function removeEntity(_0x3d5906,_0x2f2f0d){return function(_0x976b12){if(_0x976b12){return _0x976b12[_0xec81('0x24')]()[_0xec81('0x23')](function(){var _0x28ce0e=_0x976b12[_0xec81('0x25')]({'plain':!![]});var _0x5d666c=_0xec81('0x26');return db['UserProfileResource'][_0xec81('0x24')]({'where':{'type':_0x5d666c,'resourceId':_0x28ce0e['id']}})[_0xec81('0x23')](function(){return _0x976b12;});})[_0xec81('0x23')](function(){_0x3d5906[_0xec81('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4cb953,_0x28b1d8){return function(_0x2a7bd5){if(!_0x2a7bd5){_0x4cb953[_0xec81('0x27')](0x194);}return _0x2a7bd5;};}function handleError(_0x15ea71,_0x355480){_0x355480=_0x355480||0x1f4;return function(_0xdf2d6b){logger[_0xec81('0x28')](_0xdf2d6b[_0xec81('0x29')]);if(_0xdf2d6b[_0xec81('0x2a')]){delete _0xdf2d6b[_0xec81('0x2a')];}_0x15ea71[_0xec81('0x16')](_0x355480)[_0xec81('0x2b')](_0xdf2d6b);};}exports['index']=function(_0x531819,_0x2a949a){var _0x3977a4={},_0x18b287={},_0x5b4b3c={'count':0x0,'rows':[]};var _0x41d787=_[_0xec81('0x2c')](db['Schedule']['rawAttributes'],function(_0x21405a){return{'name':_0x21405a[_0xec81('0x2d')],'type':_0x21405a[_0xec81('0x2e')]['key']};});_0x18b287[_0xec81('0x2f')]=_[_0xec81('0x2c')](_0x41d787,_0xec81('0x2a'));_0x18b287[_0xec81('0x30')]=_[_0xec81('0x31')](_0x531819[_0xec81('0x30')]);_0x18b287[_0xec81('0x32')]=_['intersection'](_0x18b287['model'],_0x18b287['query']);_0x3977a4[_0xec81('0x33')]=_[_0xec81('0x34')](_0x18b287[_0xec81('0x2f')],qs[_0xec81('0x35')](_0x531819[_0xec81('0x30')][_0xec81('0x35')]));_0x3977a4[_0xec81('0x33')]=_0x3977a4[_0xec81('0x33')][_0xec81('0x36')]?_0x3977a4['attributes']:_0x18b287[_0xec81('0x2f')];if(!_0x531819[_0xec81('0x30')][_0xec81('0x37')](_0xec81('0x38'))){_0x3977a4[_0xec81('0x1b')]=qs[_0xec81('0x1b')](_0x531819[_0xec81('0x30')][_0xec81('0x1b')]);_0x3977a4[_0xec81('0x19')]=qs[_0xec81('0x19')](_0x531819['query'][_0xec81('0x19')]);}_0x3977a4[_0xec81('0x39')]=qs[_0xec81('0x3a')](_0x531819['query'][_0xec81('0x3a')]);_0x3977a4[_0xec81('0x3b')]=qs[_0xec81('0x32')](_[_0xec81('0x3c')](_0x531819['query'],_0x18b287[_0xec81('0x32')]),_0x41d787);if(_0x531819['query']['filter']){_0x3977a4[_0xec81('0x3b')]=_[_0xec81('0x3d')](_0x3977a4['where'],{'$or':_[_0xec81('0x2c')](_0x41d787,function(_0x594eb3){if(_0x594eb3[_0xec81('0x2e')]!=='VIRTUAL'){var _0x382d01={};_0x382d01[_0x594eb3['name']]={'$like':'%'+_0x531819[_0xec81('0x30')][_0xec81('0x3e')]+'%'};return _0x382d01;}})});}_0x3977a4=_[_0xec81('0x3d')]({},_0x3977a4,_0x531819['options']);var _0xc0acd9={'where':_0x3977a4[_0xec81('0x3b')]};return db[_0xec81('0x3f')]['count'](_0xc0acd9)[_0xec81('0x23')](function(_0x136347){_0x5b4b3c[_0xec81('0x1c')]=_0x136347;if(_0x531819[_0xec81('0x30')][_0xec81('0x40')]){_0x3977a4[_0xec81('0x41')]=[{'all':!![]}];}return db[_0xec81('0x3f')][_0xec81('0x42')](_0x3977a4);})[_0xec81('0x23')](function(_0x22e910){_0x5b4b3c[_0xec81('0x43')]=_0x22e910;return _0x5b4b3c;})[_0xec81('0x23')](respondWithFilteredResult(_0x2a949a,_0x3977a4))[_0xec81('0x44')](handleError(_0x2a949a,null));};exports[_0xec81('0x45')]=function(_0x43703b,_0x3bd0fa){var _0x132603={'raw':![],'where':{'id':_0x43703b[_0xec81('0x46')]['id']}},_0x1c862b={};_0x1c862b[_0xec81('0x2f')]=_['keys'](db[_0xec81('0x3f')][_0xec81('0x47')]);_0x1c862b[_0xec81('0x30')]=_[_0xec81('0x31')](_0x43703b[_0xec81('0x30')]);_0x1c862b['filters']=_[_0xec81('0x34')](_0x1c862b['model'],_0x1c862b[_0xec81('0x30')]);_0x132603[_0xec81('0x33')]=_[_0xec81('0x34')](_0x1c862b[_0xec81('0x2f')],qs[_0xec81('0x35')](_0x43703b[_0xec81('0x30')][_0xec81('0x35')]));_0x132603[_0xec81('0x33')]=_0x132603[_0xec81('0x33')][_0xec81('0x36')]?_0x132603[_0xec81('0x33')]:_0x1c862b[_0xec81('0x2f')];if(_0x43703b[_0xec81('0x30')][_0xec81('0x40')]){_0x132603['include']=[{'all':!![]}];}_0x132603=_[_0xec81('0x3d')]({},_0x132603,_0x43703b[_0xec81('0x48')]);return db[_0xec81('0x3f')][_0xec81('0x49')](_0x132603)[_0xec81('0x23')](handleEntityNotFound(_0x3bd0fa,null))['then'](respondWithResult(_0x3bd0fa,null))[_0xec81('0x44')](handleError(_0x3bd0fa,null));};exports[_0xec81('0x4a')]=function(_0x36d777,_0x76473e){return db[_0xec81('0x3f')]['create'](_0x36d777['body'],{})[_0xec81('0x23')](function(_0x2d6710){var _0x403854=_0x36d777[_0xec81('0x4b')][_0xec81('0x25')]({'plain':!![]});if(!_0x403854)throw new Error(_0xec81('0x4c'));if(_0x403854[_0xec81('0x4d')]===_0xec81('0x4b')){var _0x8ce9fd=_0x2d6710[_0xec81('0x25')]({'plain':!![]});var _0x4add37='Scheduler';return db['UserProfileSection'][_0xec81('0x49')]({'where':{'name':_0x4add37,'userProfileId':_0x403854[_0xec81('0x4e')]},'raw':!![]})[_0xec81('0x23')](function(_0x5352b9){if(_0x5352b9&&_0x5352b9[_0xec81('0x4f')]===0x0){return db[_0xec81('0x50')][_0xec81('0x4a')]({'name':_0x8ce9fd['name'],'resourceId':_0x8ce9fd['id'],'type':_0x5352b9[_0xec81('0x2a')],'sectionId':_0x5352b9['id']},{})[_0xec81('0x23')](function(){return _0x2d6710;});}else{return _0x2d6710;}})[_0xec81('0x44')](function(_0x34e594){logger[_0xec81('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x34e594);throw _0x34e594;});}return _0x2d6710;})[_0xec81('0x23')](respondWithResult(_0x76473e,0xc9))['catch'](handleError(_0x76473e,null));};exports['update']=function(_0x4c19a0,_0x3f993e){if(_0x4c19a0['body']['id']){delete _0x4c19a0[_0xec81('0x51')]['id'];}return db[_0xec81('0x3f')][_0xec81('0x49')]({'where':{'id':_0x4c19a0[_0xec81('0x46')]['id']}})[_0xec81('0x23')](handleEntityNotFound(_0x3f993e,null))[_0xec81('0x23')](saveUpdates(_0x4c19a0[_0xec81('0x51')],null))[_0xec81('0x23')](respondWithResult(_0x3f993e,null))[_0xec81('0x44')](handleError(_0x3f993e,null));};exports['destroy']=function(_0x36015e,_0x2711c5){return db['Schedule']['find']({'where':{'id':_0x36015e['params']['id']}})[_0xec81('0x23')](handleEntityNotFound(_0x2711c5,null))['then'](removeEntity(_0x2711c5,null))[_0xec81('0x44')](handleError(_0x2711c5,null));};exports['run']=function(_0x249d96,_0x2e2012,_0x23a187){var _0x1c2f6e=require(_0xec81('0x52'));return db[_0xec81('0x3f')]['find']({'where':{'id':_0x249d96[_0xec81('0x46')]['id']},'raw':!![]})[_0xec81('0x23')](handleEntityNotFound(_0x2e2012,null))[_0xec81('0x23')](function(){_0x1c2f6e['run'](_0x249d96[_0xec81('0x46')]['id']);})[_0xec81('0x23')](respondWithStatusCode(_0x2e2012,null))['catch'](handleError(_0x2e2012,null));};