Built motion from commit 14588770.|2.5.38
[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 _0x5d29=['eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','UserProfileResource','error','stack','name','send','index','map','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','Schedule','includeAll','include','findAll','rows','catch','show','params','fields','length','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','run','../../config/schedule'];(function(_0x2741a6,_0x422c87){var _0x51b0e8=function(_0xc10778){while(--_0xc10778){_0x2741a6['push'](_0x2741a6['shift']());}};_0x51b0e8(++_0x422c87);}(_0x5d29,0x1b8));var _0x95d2=function(_0x3c46ca,_0x10d2e9){_0x3c46ca=_0x3c46ca-0x0;var _0x3e3ee3=_0x5d29[_0x3c46ca];return _0x3e3ee3;};'use strict';var emlformat=require(_0x95d2('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x95d2('0x1'));var rp=require(_0x95d2('0x2'));var moment=require(_0x95d2('0x3'));var BPromise=require(_0x95d2('0x4'));var Mustache=require(_0x95d2('0x5'));var util=require(_0x95d2('0x6'));var path=require(_0x95d2('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x95d2('0x8'));var fs=require('fs');var fs_extra=require(_0x95d2('0x9'));var _=require(_0x95d2('0xa'));var squel=require('squel');var crypto=require(_0x95d2('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x95d2('0xc'));var toCsv=require(_0x95d2('0xd'));var querystring=require(_0x95d2('0xe'));var Papa=require(_0x95d2('0xf'));var Redis=require(_0x95d2('0x10'));var authService=require(_0x95d2('0x11'));var qs=require(_0x95d2('0x12'));var as=require(_0x95d2('0x13'));var hardwareService=require(_0x95d2('0x14'));var logger=require(_0x95d2('0x15'))(_0x95d2('0x16'));var utils=require(_0x95d2('0x17'));var config=require(_0x95d2('0x18'));var licenseUtil=require(_0x95d2('0x19'));var db=require(_0x95d2('0x1a'))['db'];function respondWithStatusCode(_0x6a401c,_0x3f817f){_0x3f817f=_0x3f817f||0xcc;return function(_0x272f30){if(_0x272f30){return _0x6a401c[_0x95d2('0x1b')](_0x3f817f);}return _0x6a401c[_0x95d2('0x1c')](_0x3f817f)[_0x95d2('0x1d')]();};}function respondWithResult(_0x31a928,_0x473f88){_0x473f88=_0x473f88||0xc8;return function(_0x1adc9e){if(_0x1adc9e){return _0x31a928[_0x95d2('0x1c')](_0x473f88)[_0x95d2('0x1e')](_0x1adc9e);}};}function respondWithFilteredResult(_0x2e50df,_0x3aac7e){return function(_0x375299){if(_0x375299){var _0x10dfc5=typeof _0x3aac7e[_0x95d2('0x1f')]===_0x95d2('0x20')&&typeof _0x3aac7e['limit']==='undefined';var _0x20c028=_0x375299['count'];var _0x4e0cc1=_0x10dfc5?0x0:_0x3aac7e[_0x95d2('0x1f')];var _0x48514a=_0x10dfc5?_0x375299[_0x95d2('0x21')]:_0x3aac7e[_0x95d2('0x1f')]+_0x3aac7e[_0x95d2('0x22')];var _0x5cc78c;if(_0x48514a>=_0x20c028){_0x48514a=_0x20c028;_0x5cc78c=0xc8;}else{_0x5cc78c=0xce;}_0x2e50df[_0x95d2('0x1c')](_0x5cc78c);return _0x2e50df[_0x95d2('0x23')](_0x95d2('0x24'),_0x4e0cc1+'-'+_0x48514a+'/'+_0x20c028)['json'](_0x375299);}return null;};}function patchUpdates(_0xfa4fce){return function(_0x320323){try{jsonpatch[_0x95d2('0x25')](_0x320323,_0xfa4fce,!![]);}catch(_0x128470){return BPromise[_0x95d2('0x26')](_0x128470);}return _0x320323['save']();};}function saveUpdates(_0x31cf5b,_0x2f1ae2){return function(_0x3f659b){if(_0x3f659b){return _0x3f659b[_0x95d2('0x27')](_0x31cf5b)[_0x95d2('0x28')](function(_0x547bd5){return _0x547bd5;});}return null;};}function removeEntity(_0x5d4bb4,_0x131ba4){return function(_0x589398){if(_0x589398){return _0x589398[_0x95d2('0x29')]()[_0x95d2('0x28')](function(){var _0x483737=_0x589398['get']({'plain':!![]});var _0x5f3251='Scheduler';return db[_0x95d2('0x2a')][_0x95d2('0x29')]({'where':{'type':_0x5f3251,'resourceId':_0x483737['id']}})[_0x95d2('0x28')](function(){return _0x589398;});})[_0x95d2('0x28')](function(){_0x5d4bb4[_0x95d2('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x50b2b4,_0x33cd3e){return function(_0x4fa211){if(!_0x4fa211){_0x50b2b4[_0x95d2('0x1b')](0x194);}return _0x4fa211;};}function handleError(_0x4f2475,_0x4ca65f){_0x4ca65f=_0x4ca65f||0x1f4;return function(_0x13fc81){logger[_0x95d2('0x2b')](_0x13fc81[_0x95d2('0x2c')]);if(_0x13fc81['name']){delete _0x13fc81[_0x95d2('0x2d')];}_0x4f2475[_0x95d2('0x1c')](_0x4ca65f)[_0x95d2('0x2e')](_0x13fc81);};}exports[_0x95d2('0x2f')]=function(_0xd3c33a,_0x14e6ce){var _0x33f6aa={},_0x331a0c={},_0x5a6cd1={'count':0x0,'rows':[]};var _0x1900af=_[_0x95d2('0x30')](db['Schedule'][_0x95d2('0x31')],function(_0x15462e){return{'name':_0x15462e[_0x95d2('0x32')],'type':_0x15462e[_0x95d2('0x33')]['key']};});_0x331a0c['model']=_[_0x95d2('0x30')](_0x1900af,_0x95d2('0x2d'));_0x331a0c[_0x95d2('0x34')]=_[_0x95d2('0x35')](_0xd3c33a[_0x95d2('0x34')]);_0x331a0c[_0x95d2('0x36')]=_[_0x95d2('0x37')](_0x331a0c[_0x95d2('0x38')],_0x331a0c[_0x95d2('0x34')]);_0x33f6aa[_0x95d2('0x39')]=_[_0x95d2('0x37')](_0x331a0c[_0x95d2('0x38')],qs['fields'](_0xd3c33a[_0x95d2('0x34')]['fields']));_0x33f6aa[_0x95d2('0x39')]=_0x33f6aa[_0x95d2('0x39')]['length']?_0x33f6aa['attributes']:_0x331a0c['model'];if(!_0xd3c33a[_0x95d2('0x34')][_0x95d2('0x3a')](_0x95d2('0x3b'))){_0x33f6aa[_0x95d2('0x22')]=qs[_0x95d2('0x22')](_0xd3c33a[_0x95d2('0x34')][_0x95d2('0x22')]);_0x33f6aa['offset']=qs[_0x95d2('0x1f')](_0xd3c33a[_0x95d2('0x34')][_0x95d2('0x1f')]);}_0x33f6aa[_0x95d2('0x3c')]=qs['sort'](_0xd3c33a[_0x95d2('0x34')][_0x95d2('0x3d')]);_0x33f6aa['where']=qs[_0x95d2('0x36')](_['pick'](_0xd3c33a['query'],_0x331a0c[_0x95d2('0x36')]),_0x1900af);if(_0xd3c33a[_0x95d2('0x34')][_0x95d2('0x3e')]){_0x33f6aa[_0x95d2('0x3f')]=_[_0x95d2('0x40')](_0x33f6aa['where'],{'$or':_[_0x95d2('0x30')](_0x1900af,function(_0x2bc5b3){if(_0x2bc5b3['type']!==_0x95d2('0x41')){var _0x54094c={};_0x54094c[_0x2bc5b3[_0x95d2('0x2d')]]={'$like':'%'+_0xd3c33a[_0x95d2('0x34')][_0x95d2('0x3e')]+'%'};return _0x54094c;}})});}_0x33f6aa=_[_0x95d2('0x40')]({},_0x33f6aa,_0xd3c33a['options']);var _0x2034a8={'where':_0x33f6aa[_0x95d2('0x3f')]};return db[_0x95d2('0x42')]['count'](_0x2034a8)['then'](function(_0x469656){_0x5a6cd1[_0x95d2('0x21')]=_0x469656;if(_0xd3c33a[_0x95d2('0x34')][_0x95d2('0x43')]){_0x33f6aa[_0x95d2('0x44')]=[{'all':!![]}];}return db[_0x95d2('0x42')][_0x95d2('0x45')](_0x33f6aa);})[_0x95d2('0x28')](function(_0x173913){_0x5a6cd1[_0x95d2('0x46')]=_0x173913;return _0x5a6cd1;})['then'](respondWithFilteredResult(_0x14e6ce,_0x33f6aa))[_0x95d2('0x47')](handleError(_0x14e6ce,null));};exports[_0x95d2('0x48')]=function(_0x396a18,_0x4e2be5){var _0x3f6d9d={'raw':![],'where':{'id':_0x396a18[_0x95d2('0x49')]['id']}},_0x127b48={};_0x127b48[_0x95d2('0x38')]=_[_0x95d2('0x35')](db[_0x95d2('0x42')][_0x95d2('0x31')]);_0x127b48[_0x95d2('0x34')]=_[_0x95d2('0x35')](_0x396a18['query']);_0x127b48['filters']=_[_0x95d2('0x37')](_0x127b48[_0x95d2('0x38')],_0x127b48[_0x95d2('0x34')]);_0x3f6d9d[_0x95d2('0x39')]=_[_0x95d2('0x37')](_0x127b48[_0x95d2('0x38')],qs[_0x95d2('0x4a')](_0x396a18[_0x95d2('0x34')][_0x95d2('0x4a')]));_0x3f6d9d[_0x95d2('0x39')]=_0x3f6d9d[_0x95d2('0x39')][_0x95d2('0x4b')]?_0x3f6d9d[_0x95d2('0x39')]:_0x127b48[_0x95d2('0x38')];if(_0x396a18[_0x95d2('0x34')][_0x95d2('0x43')]){_0x3f6d9d[_0x95d2('0x44')]=[{'all':!![]}];}_0x3f6d9d=_['merge']({},_0x3f6d9d,_0x396a18[_0x95d2('0x4c')]);return db[_0x95d2('0x42')][_0x95d2('0x4d')](_0x3f6d9d)[_0x95d2('0x28')](handleEntityNotFound(_0x4e2be5,null))['then'](respondWithResult(_0x4e2be5,null))[_0x95d2('0x47')](handleError(_0x4e2be5,null));};exports[_0x95d2('0x4e')]=function(_0x7aa17e,_0x464cd7){return db[_0x95d2('0x42')]['create'](_0x7aa17e['body'],{})[_0x95d2('0x28')](function(_0x463170){var _0x25b6ef=_0x7aa17e[_0x95d2('0x4f')]['get']({'plain':!![]});if(!_0x25b6ef)throw new Error(_0x95d2('0x50'));if(_0x25b6ef['role']==='user'){var _0x48011d=_0x463170[_0x95d2('0x51')]({'plain':!![]});var _0x5dcda7='Scheduler';return db[_0x95d2('0x52')][_0x95d2('0x4d')]({'where':{'name':_0x5dcda7,'userProfileId':_0x25b6ef[_0x95d2('0x53')]},'raw':!![]})[_0x95d2('0x28')](function(_0x2991e6){if(_0x2991e6&&_0x2991e6['autoAssociation']===0x0){return db[_0x95d2('0x2a')]['create']({'name':_0x48011d[_0x95d2('0x2d')],'resourceId':_0x48011d['id'],'type':_0x2991e6['name'],'sectionId':_0x2991e6['id']},{})[_0x95d2('0x28')](function(){return _0x463170;});}else{return _0x463170;}})[_0x95d2('0x47')](function(_0xaa1927){logger['error'](_0x95d2('0x54'),_0xaa1927);throw _0xaa1927;});}return _0x463170;})[_0x95d2('0x28')](respondWithResult(_0x464cd7,0xc9))[_0x95d2('0x47')](handleError(_0x464cd7,null));};exports[_0x95d2('0x27')]=function(_0x29c78b,_0x40d45c){if(_0x29c78b[_0x95d2('0x55')]['id']){delete _0x29c78b[_0x95d2('0x55')]['id'];}return db[_0x95d2('0x42')]['find']({'where':{'id':_0x29c78b[_0x95d2('0x49')]['id']}})['then'](handleEntityNotFound(_0x40d45c,null))['then'](saveUpdates(_0x29c78b[_0x95d2('0x55')],null))['then'](respondWithResult(_0x40d45c,null))[_0x95d2('0x47')](handleError(_0x40d45c,null));};exports[_0x95d2('0x29')]=function(_0x15d048,_0x1e44a1){return db['Schedule'][_0x95d2('0x4d')]({'where':{'id':_0x15d048['params']['id']}})['then'](handleEntityNotFound(_0x1e44a1,null))[_0x95d2('0x28')](removeEntity(_0x1e44a1,null))[_0x95d2('0x47')](handleError(_0x1e44a1,null));};exports[_0x95d2('0x56')]=function(_0x38ad54,_0x539565,_0x2330c3){var _0x2c2ae7=require(_0x95d2('0x57'));return db[_0x95d2('0x42')][_0x95d2('0x4d')]({'where':{'id':_0x38ad54['params']['id']},'raw':!![]})[_0x95d2('0x28')](handleEntityNotFound(_0x539565,null))[_0x95d2('0x28')](function(){_0x2c2ae7[_0x95d2('0x56')](_0x38ad54['params']['id']);})['then'](respondWithStatusCode(_0x539565,null))['catch'](handleError(_0x539565,null));};