Built motion from commit ffdca78c.|2.6.24
[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 _0x0426=['Scheduler','UserProfileResource','destroy','then','error','name','index','map','Schedule','rawAttributes','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','params','create','body','user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','run','../../config/schedule','eml-format','rimraf','zip-dir','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','save','update','get'];(function(_0x3f6e26,_0x811a34){var _0x474345=function(_0x4a0cbe){while(--_0x4a0cbe){_0x3f6e26['push'](_0x3f6e26['shift']());}};_0x474345(++_0x811a34);}(_0x0426,0xc1));var _0x6042=function(_0x4f2bd4,_0x22f714){_0x4f2bd4=_0x4f2bd4-0x0;var _0x39e45b=_0x0426[_0x4f2bd4];return _0x39e45b;};'use strict';var emlformat=require(_0x6042('0x0'));var rimraf=require(_0x6042('0x1'));var zipdir=require(_0x6042('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x6042('0x3'));var util=require(_0x6042('0x4'));var path=require(_0x6042('0x5'));var sox=require('sox');var csv=require(_0x6042('0x6'));var ejs=require(_0x6042('0x7'));var fs=require('fs');var fs_extra=require(_0x6042('0x8'));var _=require(_0x6042('0x9'));var squel=require(_0x6042('0xa'));var crypto=require(_0x6042('0xb'));var jsforce=require(_0x6042('0xc'));var deskjs=require(_0x6042('0xd'));var toCsv=require(_0x6042('0x6'));var querystring=require(_0x6042('0xe'));var Papa=require(_0x6042('0xf'));var Redis=require(_0x6042('0x10'));var authService=require(_0x6042('0x11'));var qs=require(_0x6042('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x6042('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x6042('0x14'));var db=require(_0x6042('0x15'))['db'];function respondWithStatusCode(_0xa0dcd5,_0xe1db4a){_0xe1db4a=_0xe1db4a||0xcc;return function(_0x39eac9){if(_0x39eac9){return _0xa0dcd5[_0x6042('0x16')](_0xe1db4a);}return _0xa0dcd5[_0x6042('0x17')](_0xe1db4a)[_0x6042('0x18')]();};}function respondWithResult(_0x400082,_0x2a0d25){_0x2a0d25=_0x2a0d25||0xc8;return function(_0x168856){if(_0x168856){return _0x400082[_0x6042('0x17')](_0x2a0d25)[_0x6042('0x19')](_0x168856);}};}function respondWithFilteredResult(_0x16451b,_0x299ac3){return function(_0x12cd51){if(_0x12cd51){var _0x47029a=typeof _0x299ac3[_0x6042('0x1a')]===_0x6042('0x1b')&&typeof _0x299ac3[_0x6042('0x1c')]==='undefined';var _0x2115a8=_0x12cd51[_0x6042('0x1d')];var _0x3673f2=_0x47029a?0x0:_0x299ac3[_0x6042('0x1a')];var _0x32341f=_0x47029a?_0x12cd51[_0x6042('0x1d')]:_0x299ac3[_0x6042('0x1a')]+_0x299ac3[_0x6042('0x1c')];var _0x59856c;if(_0x32341f>=_0x2115a8){_0x32341f=_0x2115a8;_0x59856c=0xc8;}else{_0x59856c=0xce;}_0x16451b[_0x6042('0x17')](_0x59856c);return _0x16451b['set'](_0x6042('0x1e'),_0x3673f2+'-'+_0x32341f+'/'+_0x2115a8)[_0x6042('0x19')](_0x12cd51);}return null;};}function patchUpdates(_0x2198dd){return function(_0x102c3f){try{jsonpatch['apply'](_0x102c3f,_0x2198dd,!![]);}catch(_0x7c09f6){return BPromise[_0x6042('0x1f')](_0x7c09f6);}return _0x102c3f[_0x6042('0x20')]();};}function saveUpdates(_0x17070f,_0xab01ea){return function(_0x411d4c){if(_0x411d4c){return _0x411d4c[_0x6042('0x21')](_0x17070f)['then'](function(_0x2ec495){return _0x2ec495;});}return null;};}function removeEntity(_0x3e039f,_0x13f640){return function(_0x2f9e73){if(_0x2f9e73){return _0x2f9e73['destroy']()['then'](function(){var _0x197a0e=_0x2f9e73[_0x6042('0x22')]({'plain':!![]});var _0x120b49=_0x6042('0x23');return db[_0x6042('0x24')][_0x6042('0x25')]({'where':{'type':_0x120b49,'resourceId':_0x197a0e['id']}})[_0x6042('0x26')](function(){return _0x2f9e73;});})[_0x6042('0x26')](function(){_0x3e039f[_0x6042('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5db9c9,_0x1f019a){return function(_0x20daba){if(!_0x20daba){_0x5db9c9[_0x6042('0x16')](0x194);}return _0x20daba;};}function handleError(_0x2ccda8,_0x515214){_0x515214=_0x515214||0x1f4;return function(_0xc388c3){logger[_0x6042('0x27')](_0xc388c3['stack']);if(_0xc388c3[_0x6042('0x28')]){delete _0xc388c3[_0x6042('0x28')];}_0x2ccda8[_0x6042('0x17')](_0x515214)['send'](_0xc388c3);};}exports[_0x6042('0x29')]=function(_0x2ece23,_0x1df7b4){var _0x9fb794={},_0x33dc17={},_0x2ce977={'count':0x0,'rows':[]};var _0x508710=_[_0x6042('0x2a')](db[_0x6042('0x2b')][_0x6042('0x2c')],function(_0x160e68){return{'name':_0x160e68['fieldName'],'type':_0x160e68[_0x6042('0x2d')]['key']};});_0x33dc17[_0x6042('0x2e')]=_[_0x6042('0x2a')](_0x508710,_0x6042('0x28'));_0x33dc17[_0x6042('0x2f')]=_[_0x6042('0x30')](_0x2ece23[_0x6042('0x2f')]);_0x33dc17['filters']=_[_0x6042('0x31')](_0x33dc17[_0x6042('0x2e')],_0x33dc17[_0x6042('0x2f')]);_0x9fb794[_0x6042('0x32')]=_[_0x6042('0x31')](_0x33dc17[_0x6042('0x2e')],qs[_0x6042('0x33')](_0x2ece23[_0x6042('0x2f')][_0x6042('0x33')]));_0x9fb794[_0x6042('0x32')]=_0x9fb794[_0x6042('0x32')][_0x6042('0x34')]?_0x9fb794[_0x6042('0x32')]:_0x33dc17[_0x6042('0x2e')];if(!_0x2ece23[_0x6042('0x2f')][_0x6042('0x35')]('nolimit')){_0x9fb794[_0x6042('0x1c')]=qs[_0x6042('0x1c')](_0x2ece23[_0x6042('0x2f')][_0x6042('0x1c')]);_0x9fb794[_0x6042('0x1a')]=qs['offset'](_0x2ece23[_0x6042('0x2f')][_0x6042('0x1a')]);}_0x9fb794[_0x6042('0x36')]=qs[_0x6042('0x37')](_0x2ece23[_0x6042('0x2f')][_0x6042('0x37')]);_0x9fb794[_0x6042('0x38')]=qs['filters'](_['pick'](_0x2ece23[_0x6042('0x2f')],_0x33dc17[_0x6042('0x39')]),_0x508710);if(_0x2ece23[_0x6042('0x2f')][_0x6042('0x3a')]){_0x9fb794[_0x6042('0x38')]=_[_0x6042('0x3b')](_0x9fb794['where'],{'$or':_[_0x6042('0x2a')](_0x508710,function(_0xd42d1c){if(_0xd42d1c[_0x6042('0x2d')]!==_0x6042('0x3c')){var _0x26d958={};_0x26d958[_0xd42d1c[_0x6042('0x28')]]={'$like':'%'+_0x2ece23[_0x6042('0x2f')][_0x6042('0x3a')]+'%'};return _0x26d958;}})});}_0x9fb794=_['merge']({},_0x9fb794,_0x2ece23[_0x6042('0x3d')]);var _0x3fe8a9={'where':_0x9fb794[_0x6042('0x38')]};return db[_0x6042('0x2b')][_0x6042('0x1d')](_0x3fe8a9)[_0x6042('0x26')](function(_0x5e729f){_0x2ce977[_0x6042('0x1d')]=_0x5e729f;if(_0x2ece23['query'][_0x6042('0x3e')]){_0x9fb794[_0x6042('0x3f')]=[{'all':!![]}];}return db[_0x6042('0x2b')]['findAll'](_0x9fb794);})[_0x6042('0x26')](function(_0x4380a4){_0x2ce977[_0x6042('0x40')]=_0x4380a4;return _0x2ce977;})[_0x6042('0x26')](respondWithFilteredResult(_0x1df7b4,_0x9fb794))[_0x6042('0x41')](handleError(_0x1df7b4,null));};exports['show']=function(_0x4f1461,_0x25184d){var _0x2d728a={'raw':![],'where':{'id':_0x4f1461[_0x6042('0x42')]['id']}},_0x38f08c={};_0x38f08c[_0x6042('0x2e')]=_[_0x6042('0x30')](db[_0x6042('0x2b')][_0x6042('0x2c')]);_0x38f08c[_0x6042('0x2f')]=_['keys'](_0x4f1461[_0x6042('0x2f')]);_0x38f08c[_0x6042('0x39')]=_[_0x6042('0x31')](_0x38f08c[_0x6042('0x2e')],_0x38f08c[_0x6042('0x2f')]);_0x2d728a[_0x6042('0x32')]=_[_0x6042('0x31')](_0x38f08c[_0x6042('0x2e')],qs[_0x6042('0x33')](_0x4f1461['query'][_0x6042('0x33')]));_0x2d728a[_0x6042('0x32')]=_0x2d728a[_0x6042('0x32')][_0x6042('0x34')]?_0x2d728a[_0x6042('0x32')]:_0x38f08c[_0x6042('0x2e')];if(_0x4f1461[_0x6042('0x2f')][_0x6042('0x3e')]){_0x2d728a[_0x6042('0x3f')]=[{'all':!![]}];}_0x2d728a=_[_0x6042('0x3b')]({},_0x2d728a,_0x4f1461[_0x6042('0x3d')]);return db['Schedule']['find'](_0x2d728a)['then'](handleEntityNotFound(_0x25184d,null))[_0x6042('0x26')](respondWithResult(_0x25184d,null))[_0x6042('0x41')](handleError(_0x25184d,null));};exports[_0x6042('0x43')]=function(_0x4dfbfd,_0x3d6887){return db['Schedule'][_0x6042('0x43')](_0x4dfbfd[_0x6042('0x44')],{})[_0x6042('0x26')](function(_0x439f71){var _0x5357e2=_0x4dfbfd[_0x6042('0x45')][_0x6042('0x22')]({'plain':!![]});if(!_0x5357e2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5357e2[_0x6042('0x46')]==='user'){var _0x5363fc=_0x439f71[_0x6042('0x22')]({'plain':!![]});var _0x146b17=_0x6042('0x23');return db[_0x6042('0x47')]['find']({'where':{'name':_0x146b17,'userProfileId':_0x5357e2['userProfileId']},'raw':!![]})['then'](function(_0x530030){if(_0x530030&&_0x530030['autoAssociation']===0x0){return db[_0x6042('0x24')]['create']({'name':_0x5363fc[_0x6042('0x28')],'resourceId':_0x5363fc['id'],'type':_0x530030[_0x6042('0x28')],'sectionId':_0x530030['id']},{})[_0x6042('0x26')](function(){return _0x439f71;});}else{return _0x439f71;}})['catch'](function(_0x5a77e9){logger[_0x6042('0x27')](_0x6042('0x48'),_0x5a77e9);throw _0x5a77e9;});}return _0x439f71;})[_0x6042('0x26')](respondWithResult(_0x3d6887,0xc9))[_0x6042('0x41')](handleError(_0x3d6887,null));};exports['update']=function(_0x35f7b7,_0x3cd1a5){if(_0x35f7b7['body']['id']){delete _0x35f7b7[_0x6042('0x44')]['id'];}return db[_0x6042('0x2b')][_0x6042('0x49')]({'where':{'id':_0x35f7b7['params']['id']}})[_0x6042('0x26')](handleEntityNotFound(_0x3cd1a5,null))[_0x6042('0x26')](saveUpdates(_0x35f7b7[_0x6042('0x44')],null))[_0x6042('0x26')](respondWithResult(_0x3cd1a5,null))[_0x6042('0x41')](handleError(_0x3cd1a5,null));};exports[_0x6042('0x25')]=function(_0x383979,_0x2f0cca){return db[_0x6042('0x2b')][_0x6042('0x49')]({'where':{'id':_0x383979[_0x6042('0x42')]['id']}})[_0x6042('0x26')](handleEntityNotFound(_0x2f0cca,null))[_0x6042('0x26')](removeEntity(_0x2f0cca,null))['catch'](handleError(_0x2f0cca,null));};exports[_0x6042('0x4a')]=function(_0xa6a2c7,_0x1e982d,_0x3783d9){var _0x7a8d02=require(_0x6042('0x4b'));return db[_0x6042('0x2b')][_0x6042('0x49')]({'where':{'id':_0xa6a2c7['params']['id']},'raw':!![]})['then'](handleEntityNotFound(_0x1e982d,null))[_0x6042('0x26')](function(){_0x7a8d02['run'](_0xa6a2c7['params']['id']);})[_0x6042('0x26')](respondWithStatusCode(_0x1e982d,null))['catch'](handleError(_0x1e982d,null));};