caf583574d0225a2dd4ced04ab9f4684fea39d20
[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 _0x40a1=['eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','update','then','destroy','get','Scheduler','UserProfileResource','error','name','index','map','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','pick','merge','where','VIRTUAL','includeAll','include','Schedule','findAll','rows','show','rawAttributes','keys','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','run'];(function(_0x527824,_0xc824a9){var _0xc8b8ed=function(_0x1b0e19){while(--_0x1b0e19){_0x527824['push'](_0x527824['shift']());}};_0xc8b8ed(++_0xc824a9);}(_0x40a1,0x158));var _0x140a=function(_0x460d04,_0x2210e5){_0x460d04=_0x460d04-0x0;var _0x144806=_0x40a1[_0x460d04];return _0x144806;};'use strict';var emlformat=require(_0x140a('0x0'));var rimraf=require(_0x140a('0x1'));var zipdir=require(_0x140a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x140a('0x3'));var moment=require('moment');var BPromise=require(_0x140a('0x4'));var Mustache=require(_0x140a('0x5'));var util=require(_0x140a('0x6'));var path=require(_0x140a('0x7'));var sox=require('sox');var csv=require(_0x140a('0x8'));var ejs=require(_0x140a('0x9'));var fs=require('fs');var fs_extra=require(_0x140a('0xa'));var _=require(_0x140a('0xb'));var squel=require(_0x140a('0xc'));var crypto=require(_0x140a('0xd'));var jsforce=require(_0x140a('0xe'));var deskjs=require(_0x140a('0xf'));var toCsv=require(_0x140a('0x8'));var querystring=require(_0x140a('0x10'));var Papa=require(_0x140a('0x11'));var Redis=require(_0x140a('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x140a('0x13'));var as=require(_0x140a('0x14'));var hardwareService=require(_0x140a('0x15'));var logger=require(_0x140a('0x16'))(_0x140a('0x17'));var utils=require(_0x140a('0x18'));var config=require(_0x140a('0x19'));var licenseUtil=require(_0x140a('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x252456,_0x23617d){_0x23617d=_0x23617d||0xcc;return function(_0x2bd17a){if(_0x2bd17a){return _0x252456[_0x140a('0x1b')](_0x23617d);}return _0x252456[_0x140a('0x1c')](_0x23617d)[_0x140a('0x1d')]();};}function respondWithResult(_0x22ef50,_0x7bb051){_0x7bb051=_0x7bb051||0xc8;return function(_0x3033eb){if(_0x3033eb){return _0x22ef50[_0x140a('0x1c')](_0x7bb051)[_0x140a('0x1e')](_0x3033eb);}};}function respondWithFilteredResult(_0x4b2050,_0x33ba83){return function(_0xf2a076){if(_0xf2a076){var _0x4edad1=typeof _0x33ba83[_0x140a('0x1f')]==='undefined'&&typeof _0x33ba83['limit']===_0x140a('0x20');var _0x4ed74a=_0xf2a076[_0x140a('0x21')];var _0x22e8ca=_0x4edad1?0x0:_0x33ba83[_0x140a('0x1f')];var _0x7a23d7=_0x4edad1?_0xf2a076['count']:_0x33ba83[_0x140a('0x1f')]+_0x33ba83['limit'];var _0x2abfc9;if(_0x7a23d7>=_0x4ed74a){_0x7a23d7=_0x4ed74a;_0x2abfc9=0xc8;}else{_0x2abfc9=0xce;}_0x4b2050[_0x140a('0x1c')](_0x2abfc9);return _0x4b2050[_0x140a('0x22')](_0x140a('0x23'),_0x22e8ca+'-'+_0x7a23d7+'/'+_0x4ed74a)[_0x140a('0x1e')](_0xf2a076);}return null;};}function patchUpdates(_0x127f81){return function(_0x48a76b){try{jsonpatch[_0x140a('0x24')](_0x48a76b,_0x127f81,!![]);}catch(_0x16a8e8){return BPromise[_0x140a('0x25')](_0x16a8e8);}return _0x48a76b['save']();};}function saveUpdates(_0x28cea4,_0x745a4a){return function(_0x7aeb7){if(_0x7aeb7){return _0x7aeb7[_0x140a('0x26')](_0x28cea4)[_0x140a('0x27')](function(_0x3242e3){return _0x3242e3;});}return null;};}function removeEntity(_0x40da75,_0x11242d){return function(_0x1a0fa2){if(_0x1a0fa2){return _0x1a0fa2[_0x140a('0x28')]()[_0x140a('0x27')](function(){var _0x26b295=_0x1a0fa2[_0x140a('0x29')]({'plain':!![]});var _0x31e2b7=_0x140a('0x2a');return db[_0x140a('0x2b')][_0x140a('0x28')]({'where':{'type':_0x31e2b7,'resourceId':_0x26b295['id']}})[_0x140a('0x27')](function(){return _0x1a0fa2;});})[_0x140a('0x27')](function(){_0x40da75['status'](0xcc)[_0x140a('0x1d')]();});}};}function handleEntityNotFound(_0x43bcc8,_0x261452){return function(_0x56cebf){if(!_0x56cebf){_0x43bcc8[_0x140a('0x1b')](0x194);}return _0x56cebf;};}function handleError(_0xb29488,_0x556f1f){_0x556f1f=_0x556f1f||0x1f4;return function(_0x29e3a1){logger[_0x140a('0x2c')](_0x29e3a1['stack']);if(_0x29e3a1[_0x140a('0x2d')]){delete _0x29e3a1[_0x140a('0x2d')];}_0xb29488[_0x140a('0x1c')](_0x556f1f)['send'](_0x29e3a1);};}exports[_0x140a('0x2e')]=function(_0x39a54b,_0x3a2095){var _0x57d3f9={},_0x49a8c1={},_0x1fe785={'count':0x0,'rows':[]};var _0x15ff61=_[_0x140a('0x2f')](db['Schedule']['rawAttributes'],function(_0x5bf0b0){return{'name':_0x5bf0b0[_0x140a('0x30')],'type':_0x5bf0b0[_0x140a('0x31')][_0x140a('0x32')]};});_0x49a8c1[_0x140a('0x33')]=_[_0x140a('0x2f')](_0x15ff61,_0x140a('0x2d'));_0x49a8c1['query']=_['keys'](_0x39a54b[_0x140a('0x34')]);_0x49a8c1[_0x140a('0x35')]=_[_0x140a('0x36')](_0x49a8c1['model'],_0x49a8c1['query']);_0x57d3f9[_0x140a('0x37')]=_[_0x140a('0x36')](_0x49a8c1[_0x140a('0x33')],qs[_0x140a('0x38')](_0x39a54b['query']['fields']));_0x57d3f9['attributes']=_0x57d3f9[_0x140a('0x37')][_0x140a('0x39')]?_0x57d3f9['attributes']:_0x49a8c1[_0x140a('0x33')];if(!_0x39a54b['query'][_0x140a('0x3a')](_0x140a('0x3b'))){_0x57d3f9[_0x140a('0x3c')]=qs[_0x140a('0x3c')](_0x39a54b[_0x140a('0x34')][_0x140a('0x3c')]);_0x57d3f9['offset']=qs[_0x140a('0x1f')](_0x39a54b[_0x140a('0x34')][_0x140a('0x1f')]);}_0x57d3f9['order']=qs[_0x140a('0x3d')](_0x39a54b[_0x140a('0x34')][_0x140a('0x3d')]);_0x57d3f9['where']=qs[_0x140a('0x35')](_[_0x140a('0x3e')](_0x39a54b['query'],_0x49a8c1[_0x140a('0x35')]),_0x15ff61);if(_0x39a54b[_0x140a('0x34')]['filter']){_0x57d3f9['where']=_[_0x140a('0x3f')](_0x57d3f9[_0x140a('0x40')],{'$or':_['map'](_0x15ff61,function(_0x1324d5){if(_0x1324d5['type']!==_0x140a('0x41')){var _0x26f07e={};_0x26f07e[_0x1324d5[_0x140a('0x2d')]]={'$like':'%'+_0x39a54b[_0x140a('0x34')]['filter']+'%'};return _0x26f07e;}})});}_0x57d3f9=_[_0x140a('0x3f')]({},_0x57d3f9,_0x39a54b['options']);var _0x4e5a5e={'where':_0x57d3f9[_0x140a('0x40')]};return db['Schedule'][_0x140a('0x21')](_0x4e5a5e)[_0x140a('0x27')](function(_0x1c3d56){_0x1fe785['count']=_0x1c3d56;if(_0x39a54b[_0x140a('0x34')][_0x140a('0x42')]){_0x57d3f9[_0x140a('0x43')]=[{'all':!![]}];}return db[_0x140a('0x44')][_0x140a('0x45')](_0x57d3f9);})[_0x140a('0x27')](function(_0x2d55ad){_0x1fe785[_0x140a('0x46')]=_0x2d55ad;return _0x1fe785;})[_0x140a('0x27')](respondWithFilteredResult(_0x3a2095,_0x57d3f9))['catch'](handleError(_0x3a2095,null));};exports[_0x140a('0x47')]=function(_0x248773,_0x5babfc){var _0x9d766a={'raw':![],'where':{'id':_0x248773['params']['id']}},_0x31f8c7={};_0x31f8c7[_0x140a('0x33')]=_['keys'](db[_0x140a('0x44')][_0x140a('0x48')]);_0x31f8c7['query']=_[_0x140a('0x49')](_0x248773[_0x140a('0x34')]);_0x31f8c7[_0x140a('0x35')]=_[_0x140a('0x36')](_0x31f8c7[_0x140a('0x33')],_0x31f8c7['query']);_0x9d766a[_0x140a('0x37')]=_['intersection'](_0x31f8c7[_0x140a('0x33')],qs[_0x140a('0x38')](_0x248773[_0x140a('0x34')][_0x140a('0x38')]));_0x9d766a[_0x140a('0x37')]=_0x9d766a[_0x140a('0x37')][_0x140a('0x39')]?_0x9d766a[_0x140a('0x37')]:_0x31f8c7[_0x140a('0x33')];if(_0x248773[_0x140a('0x34')][_0x140a('0x42')]){_0x9d766a[_0x140a('0x43')]=[{'all':!![]}];}_0x9d766a=_[_0x140a('0x3f')]({},_0x9d766a,_0x248773['options']);return db[_0x140a('0x44')][_0x140a('0x4a')](_0x9d766a)[_0x140a('0x27')](handleEntityNotFound(_0x5babfc,null))[_0x140a('0x27')](respondWithResult(_0x5babfc,null))['catch'](handleError(_0x5babfc,null));};exports[_0x140a('0x4b')]=function(_0x20de48,_0x18cfca){return db['Schedule'][_0x140a('0x4b')](_0x20de48['body'],{})[_0x140a('0x27')](function(_0x5f2dc7){var _0x3ab1d4=_0x20de48['user'][_0x140a('0x29')]({'plain':!![]});if(!_0x3ab1d4)throw new Error(_0x140a('0x4c'));if(_0x3ab1d4[_0x140a('0x4d')]===_0x140a('0x4e')){var _0x40693c=_0x5f2dc7[_0x140a('0x29')]({'plain':!![]});var _0x1bf892=_0x140a('0x2a');return db['UserProfileSection']['find']({'where':{'name':_0x1bf892,'userProfileId':_0x3ab1d4[_0x140a('0x4f')]},'raw':!![]})['then'](function(_0x1cff4d){if(_0x1cff4d&&_0x1cff4d[_0x140a('0x50')]===0x0){return db['UserProfileResource'][_0x140a('0x4b')]({'name':_0x40693c[_0x140a('0x2d')],'resourceId':_0x40693c['id'],'type':_0x1cff4d[_0x140a('0x2d')],'sectionId':_0x1cff4d['id']},{})[_0x140a('0x27')](function(){return _0x5f2dc7;});}else{return _0x5f2dc7;}})[_0x140a('0x51')](function(_0x17a207){logger['error'](_0x140a('0x52'),_0x17a207);throw _0x17a207;});}return _0x5f2dc7;})[_0x140a('0x27')](respondWithResult(_0x18cfca,0xc9))[_0x140a('0x51')](handleError(_0x18cfca,null));};exports[_0x140a('0x26')]=function(_0x20ad2c,_0x269f1d){if(_0x20ad2c['body']['id']){delete _0x20ad2c['body']['id'];}return db['Schedule'][_0x140a('0x4a')]({'where':{'id':_0x20ad2c['params']['id']}})['then'](handleEntityNotFound(_0x269f1d,null))[_0x140a('0x27')](saveUpdates(_0x20ad2c[_0x140a('0x53')],null))[_0x140a('0x27')](respondWithResult(_0x269f1d,null))[_0x140a('0x51')](handleError(_0x269f1d,null));};exports['destroy']=function(_0xac9210,_0x4b9737){return db[_0x140a('0x44')][_0x140a('0x4a')]({'where':{'id':_0xac9210[_0x140a('0x54')]['id']}})[_0x140a('0x27')](handleEntityNotFound(_0x4b9737,null))[_0x140a('0x27')](removeEntity(_0x4b9737,null))['catch'](handleError(_0x4b9737,null));};exports['run']=function(_0x330b49,_0x467d08,_0x3a1fe){var _0x33c6ec=require('../../config/schedule');return db[_0x140a('0x44')][_0x140a('0x4a')]({'where':{'id':_0x330b49['params']['id']},'raw':!![]})[_0x140a('0x27')](handleEntityNotFound(_0x467d08,null))[_0x140a('0x27')](function(){_0x33c6ec[_0x140a('0x55')](_0x330b49[_0x140a('0x54')]['id']);})[_0x140a('0x27')](respondWithStatusCode(_0x467d08,null))['catch'](handleError(_0x467d08,null));};