Built motion from commit 47436d59.|2.6.7
[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 _0x2876=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Scheduler','UserProfileSection','userProfileId','autoAssociation','create','update','body','run','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','destroy','then','UserProfileResource','error','stack','name','send','index','map','Schedule','fieldName','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','where','pick','merge','type','filter','includeAll','include','findAll','rows','catch','params','rawAttributes','length','options','find','user','get'];(function(_0x1ed225,_0x21b315){var _0x56c700=function(_0x239f73){while(--_0x239f73){_0x1ed225['push'](_0x1ed225['shift']());}};_0x56c700(++_0x21b315);}(_0x2876,0xb0));var _0x6287=function(_0x34c1ea,_0x5e3a54){_0x34c1ea=_0x34c1ea-0x0;var _0x3dcca5=_0x2876[_0x34c1ea];return _0x3dcca5;};'use strict';var emlformat=require(_0x6287('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6287('0x1'));var jsonpatch=require(_0x6287('0x2'));var rp=require(_0x6287('0x3'));var moment=require(_0x6287('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x6287('0x5'));var path=require(_0x6287('0x6'));var sox=require('sox');var csv=require(_0x6287('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6287('0x8'));var _=require(_0x6287('0x9'));var squel=require(_0x6287('0xa'));var crypto=require(_0x6287('0xb'));var jsforce=require(_0x6287('0xc'));var deskjs=require(_0x6287('0xd'));var toCsv=require(_0x6287('0x7'));var querystring=require('querystring');var Papa=require(_0x6287('0xe'));var Redis=require(_0x6287('0xf'));var authService=require(_0x6287('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x6287('0x11'));var hardwareService=require(_0x6287('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x6287('0x13'));var config=require(_0x6287('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x6287('0x15'))['db'];function respondWithStatusCode(_0x9f4630,_0x5d8720){_0x5d8720=_0x5d8720||0xcc;return function(_0x3430fa){if(_0x3430fa){return _0x9f4630[_0x6287('0x16')](_0x5d8720);}return _0x9f4630[_0x6287('0x17')](_0x5d8720)[_0x6287('0x18')]();};}function respondWithResult(_0x266e37,_0x592ebc){_0x592ebc=_0x592ebc||0xc8;return function(_0x53fc12){if(_0x53fc12){return _0x266e37[_0x6287('0x17')](_0x592ebc)[_0x6287('0x19')](_0x53fc12);}};}function respondWithFilteredResult(_0x4404cd,_0x503e24){return function(_0x10a321){if(_0x10a321){var _0x5affd8=typeof _0x503e24[_0x6287('0x1a')]===_0x6287('0x1b')&&typeof _0x503e24['limit']===_0x6287('0x1b');var _0xfe2881=_0x10a321['count'];var _0x4586c7=_0x5affd8?0x0:_0x503e24[_0x6287('0x1a')];var _0x31945f=_0x5affd8?_0x10a321[_0x6287('0x1c')]:_0x503e24[_0x6287('0x1a')]+_0x503e24[_0x6287('0x1d')];var _0x187dc6;if(_0x31945f>=_0xfe2881){_0x31945f=_0xfe2881;_0x187dc6=0xc8;}else{_0x187dc6=0xce;}_0x4404cd[_0x6287('0x17')](_0x187dc6);return _0x4404cd[_0x6287('0x1e')]('Content-Range',_0x4586c7+'-'+_0x31945f+'/'+_0xfe2881)[_0x6287('0x19')](_0x10a321);}return null;};}function patchUpdates(_0x234179){return function(_0x553310){try{jsonpatch[_0x6287('0x1f')](_0x553310,_0x234179,!![]);}catch(_0x682da1){return BPromise[_0x6287('0x20')](_0x682da1);}return _0x553310[_0x6287('0x21')]();};}function saveUpdates(_0x337cc3,_0x3f39ee){return function(_0x4cf3e2){if(_0x4cf3e2){return _0x4cf3e2['update'](_0x337cc3)['then'](function(_0x5ede4a){return _0x5ede4a;});}return null;};}function removeEntity(_0x5a57f3,_0x220cbb){return function(_0x125687){if(_0x125687){return _0x125687[_0x6287('0x22')]()[_0x6287('0x23')](function(){var _0x1d0739=_0x125687['get']({'plain':!![]});var _0x29453f='Scheduler';return db[_0x6287('0x24')][_0x6287('0x22')]({'where':{'type':_0x29453f,'resourceId':_0x1d0739['id']}})['then'](function(){return _0x125687;});})[_0x6287('0x23')](function(){_0x5a57f3['status'](0xcc)[_0x6287('0x18')]();});}};}function handleEntityNotFound(_0x9502d0,_0x75ec67){return function(_0x310f26){if(!_0x310f26){_0x9502d0[_0x6287('0x16')](0x194);}return _0x310f26;};}function handleError(_0x556bfa,_0x1e9309){_0x1e9309=_0x1e9309||0x1f4;return function(_0x548dd0){logger[_0x6287('0x25')](_0x548dd0[_0x6287('0x26')]);if(_0x548dd0[_0x6287('0x27')]){delete _0x548dd0['name'];}_0x556bfa[_0x6287('0x17')](_0x1e9309)[_0x6287('0x28')](_0x548dd0);};}exports[_0x6287('0x29')]=function(_0x31eee4,_0x24c735){var _0x32feaf={},_0x1fbdc4={},_0x2277c7={'count':0x0,'rows':[]};var _0x3efb8d=_[_0x6287('0x2a')](db[_0x6287('0x2b')]['rawAttributes'],function(_0x1d2a22){return{'name':_0x1d2a22[_0x6287('0x2c')],'type':_0x1d2a22['type'][_0x6287('0x2d')]};});_0x1fbdc4[_0x6287('0x2e')]=_['map'](_0x3efb8d,_0x6287('0x27'));_0x1fbdc4[_0x6287('0x2f')]=_[_0x6287('0x30')](_0x31eee4[_0x6287('0x2f')]);_0x1fbdc4[_0x6287('0x31')]=_[_0x6287('0x32')](_0x1fbdc4[_0x6287('0x2e')],_0x1fbdc4[_0x6287('0x2f')]);_0x32feaf[_0x6287('0x33')]=_[_0x6287('0x32')](_0x1fbdc4[_0x6287('0x2e')],qs[_0x6287('0x34')](_0x31eee4[_0x6287('0x2f')]['fields']));_0x32feaf[_0x6287('0x33')]=_0x32feaf['attributes']['length']?_0x32feaf[_0x6287('0x33')]:_0x1fbdc4[_0x6287('0x2e')];if(!_0x31eee4['query'][_0x6287('0x35')](_0x6287('0x36'))){_0x32feaf['limit']=qs[_0x6287('0x1d')](_0x31eee4[_0x6287('0x2f')][_0x6287('0x1d')]);_0x32feaf[_0x6287('0x1a')]=qs[_0x6287('0x1a')](_0x31eee4['query'][_0x6287('0x1a')]);}_0x32feaf[_0x6287('0x37')]=qs['sort'](_0x31eee4['query']['sort']);_0x32feaf[_0x6287('0x38')]=qs['filters'](_[_0x6287('0x39')](_0x31eee4[_0x6287('0x2f')],_0x1fbdc4[_0x6287('0x31')]),_0x3efb8d);if(_0x31eee4['query']['filter']){_0x32feaf['where']=_[_0x6287('0x3a')](_0x32feaf[_0x6287('0x38')],{'$or':_[_0x6287('0x2a')](_0x3efb8d,function(_0x154374){if(_0x154374[_0x6287('0x3b')]!=='VIRTUAL'){var _0x444d11={};_0x444d11[_0x154374[_0x6287('0x27')]]={'$like':'%'+_0x31eee4[_0x6287('0x2f')][_0x6287('0x3c')]+'%'};return _0x444d11;}})});}_0x32feaf=_[_0x6287('0x3a')]({},_0x32feaf,_0x31eee4['options']);var _0x50cab8={'where':_0x32feaf[_0x6287('0x38')]};return db[_0x6287('0x2b')][_0x6287('0x1c')](_0x50cab8)[_0x6287('0x23')](function(_0x3d0fda){_0x2277c7[_0x6287('0x1c')]=_0x3d0fda;if(_0x31eee4[_0x6287('0x2f')][_0x6287('0x3d')]){_0x32feaf[_0x6287('0x3e')]=[{'all':!![]}];}return db[_0x6287('0x2b')][_0x6287('0x3f')](_0x32feaf);})[_0x6287('0x23')](function(_0x36aee3){_0x2277c7[_0x6287('0x40')]=_0x36aee3;return _0x2277c7;})[_0x6287('0x23')](respondWithFilteredResult(_0x24c735,_0x32feaf))[_0x6287('0x41')](handleError(_0x24c735,null));};exports['show']=function(_0x59a2d6,_0x3e33ae){var _0x36dc2b={'raw':![],'where':{'id':_0x59a2d6[_0x6287('0x42')]['id']}},_0x173676={};_0x173676[_0x6287('0x2e')]=_[_0x6287('0x30')](db[_0x6287('0x2b')][_0x6287('0x43')]);_0x173676['query']=_['keys'](_0x59a2d6[_0x6287('0x2f')]);_0x173676[_0x6287('0x31')]=_[_0x6287('0x32')](_0x173676[_0x6287('0x2e')],_0x173676['query']);_0x36dc2b['attributes']=_['intersection'](_0x173676[_0x6287('0x2e')],qs[_0x6287('0x34')](_0x59a2d6[_0x6287('0x2f')][_0x6287('0x34')]));_0x36dc2b[_0x6287('0x33')]=_0x36dc2b[_0x6287('0x33')][_0x6287('0x44')]?_0x36dc2b[_0x6287('0x33')]:_0x173676[_0x6287('0x2e')];if(_0x59a2d6[_0x6287('0x2f')]['includeAll']){_0x36dc2b[_0x6287('0x3e')]=[{'all':!![]}];}_0x36dc2b=_[_0x6287('0x3a')]({},_0x36dc2b,_0x59a2d6[_0x6287('0x45')]);return db[_0x6287('0x2b')][_0x6287('0x46')](_0x36dc2b)['then'](handleEntityNotFound(_0x3e33ae,null))[_0x6287('0x23')](respondWithResult(_0x3e33ae,null))[_0x6287('0x41')](handleError(_0x3e33ae,null));};exports['create']=function(_0xae96c4,_0x444cf4){return db['Schedule']['create'](_0xae96c4['body'],{})[_0x6287('0x23')](function(_0x4ab4fc){var _0x2a7622=_0xae96c4[_0x6287('0x47')][_0x6287('0x48')]({'plain':!![]});if(!_0x2a7622)throw new Error(_0x6287('0x49'));if(_0x2a7622[_0x6287('0x4a')]==='user'){var _0x374c8a=_0x4ab4fc['get']({'plain':!![]});var _0x7571c9=_0x6287('0x4b');return db[_0x6287('0x4c')][_0x6287('0x46')]({'where':{'name':_0x7571c9,'userProfileId':_0x2a7622[_0x6287('0x4d')]},'raw':!![]})[_0x6287('0x23')](function(_0x66bf04){if(_0x66bf04&&_0x66bf04[_0x6287('0x4e')]===0x0){return db[_0x6287('0x24')][_0x6287('0x4f')]({'name':_0x374c8a[_0x6287('0x27')],'resourceId':_0x374c8a['id'],'type':_0x66bf04['name'],'sectionId':_0x66bf04['id']},{})[_0x6287('0x23')](function(){return _0x4ab4fc;});}else{return _0x4ab4fc;}})['catch'](function(_0x41d843){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x41d843);throw _0x41d843;});}return _0x4ab4fc;})[_0x6287('0x23')](respondWithResult(_0x444cf4,0xc9))[_0x6287('0x41')](handleError(_0x444cf4,null));};exports[_0x6287('0x50')]=function(_0x9488bb,_0x128f6b){if(_0x9488bb[_0x6287('0x51')]['id']){delete _0x9488bb[_0x6287('0x51')]['id'];}return db[_0x6287('0x2b')][_0x6287('0x46')]({'where':{'id':_0x9488bb[_0x6287('0x42')]['id']}})['then'](handleEntityNotFound(_0x128f6b,null))['then'](saveUpdates(_0x9488bb[_0x6287('0x51')],null))['then'](respondWithResult(_0x128f6b,null))[_0x6287('0x41')](handleError(_0x128f6b,null));};exports['destroy']=function(_0x3ebf44,_0x4eb468){return db[_0x6287('0x2b')][_0x6287('0x46')]({'where':{'id':_0x3ebf44[_0x6287('0x42')]['id']}})['then'](handleEntityNotFound(_0x4eb468,null))[_0x6287('0x23')](removeEntity(_0x4eb468,null))['catch'](handleError(_0x4eb468,null));};exports['run']=function(_0x5bdc3b,_0x5e3661,_0x5ceace){var _0xc08048=require('../../config/schedule');return db[_0x6287('0x2b')][_0x6287('0x46')]({'where':{'id':_0x5bdc3b[_0x6287('0x42')]['id']},'raw':!![]})[_0x6287('0x23')](handleEntityNotFound(_0x5e3661,null))[_0x6287('0x23')](function(){_0xc08048[_0x6287('0x52')](_0x5bdc3b[_0x6287('0x42')]['id']);})[_0x6287('0x23')](respondWithStatusCode(_0x5e3661,null))[_0x6287('0x41')](handleError(_0x5e3661,null));};