Built motion from commit (unavailable).|2.5.18
[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 _0x767f=['squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../mysqldb','sendStatus','offset','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','get','UserProfileResource','end','error','stack','name','status','send','index','map','Schedule','rawAttributes','type','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','where','merge','filter','options','count','include','findAll','rows','catch','show','keys','intersection','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Scheduler','userProfileId','autoAssociation','params','run','../../config/schedule','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash'];(function(_0x4327fe,_0x4bf743){var _0x4aa013=function(_0x3bada3){while(--_0x3bada3){_0x4327fe['push'](_0x4327fe['shift']());}};_0x4aa013(++_0x4bf743);}(_0x767f,0x1eb));var _0xf767=function(_0x47fd36,_0x41535d){_0x47fd36=_0x47fd36-0x0;var _0x21a0fc=_0x767f[_0x47fd36];return _0x21a0fc;};'use strict';var pdf=require(_0xf767('0x0'));var emlformat=require(_0xf767('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xf767('0x2'));var jsonpatch=require(_0xf767('0x3'));var rp=require(_0xf767('0x4'));var moment=require(_0xf767('0x5'));var BPromise=require(_0xf767('0x6'));var Mustache=require(_0xf767('0x7'));var util=require(_0xf767('0x8'));var path=require(_0xf767('0x9'));var sox=require(_0xf767('0xa'));var csv=require('to-csv');var ejs=require(_0xf767('0xb'));var fs=require('fs');var _=require(_0xf767('0xc'));var squel=require(_0xf767('0xd'));var crypto=require('crypto');var jsforce=require(_0xf767('0xe'));var deskjs=require(_0xf767('0xf'));var toCsv=require(_0xf767('0x10'));var querystring=require(_0xf767('0x11'));var Papa=require('papaparse');var Redis=require(_0xf767('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xf767('0x13'));var hardwareService=require(_0xf767('0x14'));var logger=require('../../config/logger')(_0xf767('0x15'));var utils=require('../../config/utils');var config=require(_0xf767('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xf767('0x17'))['db'];function respondWithStatusCode(_0x4b13fd,_0x54658b){_0x54658b=_0x54658b||0xcc;return function(_0x68cbbd){if(_0x68cbbd){return _0x4b13fd[_0xf767('0x18')](_0x54658b);}return _0x4b13fd['status'](_0x54658b)['end']();};}function respondWithResult(_0x40d1a1,_0x2ed94a){_0x2ed94a=_0x2ed94a||0xc8;return function(_0x5becb4){if(_0x5becb4){return _0x40d1a1['status'](_0x2ed94a)['json'](_0x5becb4);}};}function respondWithFilteredResult(_0x4beb38,_0x21abe2){return function(_0xf010d9){if(_0xf010d9){var _0x2cf165=_0xf010d9['count'],_0x4313ee=_0x21abe2[_0xf767('0x19')],_0x39632a=_0x21abe2[_0xf767('0x19')]+_0x21abe2[_0xf767('0x1a')],_0x170877;if(_0x39632a>=_0x2cf165){_0x39632a=_0x2cf165;_0x170877=0xc8;}else{_0x170877=0xce;}_0x4beb38['status'](_0x170877);return _0x4beb38[_0xf767('0x1b')](_0xf767('0x1c'),_0x4313ee+'-'+_0x39632a+'/'+_0x2cf165)[_0xf767('0x1d')](_0xf010d9);}return null;};}function patchUpdates(_0x2121c6){return function(_0x512d43){try{jsonpatch[_0xf767('0x1e')](_0x512d43,_0x2121c6,!![]);}catch(_0x33fa80){return BPromise[_0xf767('0x1f')](_0x33fa80);}return _0x512d43[_0xf767('0x20')]();};}function saveUpdates(_0x31c434,_0x4416c6){return function(_0x4e9f30){if(_0x4e9f30){return _0x4e9f30[_0xf767('0x21')](_0x31c434)[_0xf767('0x22')](function(_0x34dfdf){return _0x34dfdf;});}return null;};}function removeEntity(_0x2c4440,_0x1c966c){return function(_0x4744b6){if(_0x4744b6){return _0x4744b6[_0xf767('0x23')]()[_0xf767('0x22')](function(){var _0x58fa92=_0x4744b6[_0xf767('0x24')]({'plain':!![]});var _0x2ef19e='Scheduler';return db[_0xf767('0x25')]['destroy']({'where':{'type':_0x2ef19e,'resourceId':_0x58fa92['id']}})[_0xf767('0x22')](function(){return _0x4744b6;});})[_0xf767('0x22')](function(){_0x2c4440['status'](0xcc)[_0xf767('0x26')]();});}};}function handleEntityNotFound(_0x485bf0,_0x5af9c3){return function(_0x524077){if(!_0x524077){_0x485bf0['sendStatus'](0x194);}return _0x524077;};}function handleError(_0x25cd72,_0x4df78c){_0x4df78c=_0x4df78c||0x1f4;return function(_0x10f6b6){logger[_0xf767('0x27')](_0x10f6b6[_0xf767('0x28')]);if(_0x10f6b6[_0xf767('0x29')]){delete _0x10f6b6[_0xf767('0x29')];}_0x25cd72[_0xf767('0x2a')](_0x4df78c)[_0xf767('0x2b')](_0x10f6b6);};}exports[_0xf767('0x2c')]=function(_0x3889ef,_0x59e164){var _0x397e95={},_0x31f49f={},_0x40b5b2={'count':0x0,'rows':[]};var _0x4bddf6=_[_0xf767('0x2d')](db[_0xf767('0x2e')][_0xf767('0x2f')],function(_0x9da6a){return{'name':_0x9da6a['fieldName'],'type':_0x9da6a[_0xf767('0x30')]['key']};});_0x31f49f[_0xf767('0x31')]=_['map'](_0x4bddf6,_0xf767('0x29'));_0x31f49f[_0xf767('0x32')]=_['keys'](_0x3889ef['query']);_0x31f49f['filters']=_['intersection'](_0x31f49f[_0xf767('0x31')],_0x31f49f['query']);_0x397e95[_0xf767('0x33')]=_['intersection'](_0x31f49f[_0xf767('0x31')],qs['fields'](_0x3889ef[_0xf767('0x32')][_0xf767('0x34')]));_0x397e95[_0xf767('0x33')]=_0x397e95[_0xf767('0x33')][_0xf767('0x35')]?_0x397e95[_0xf767('0x33')]:_0x31f49f[_0xf767('0x31')];if(!_0x3889ef[_0xf767('0x32')][_0xf767('0x36')](_0xf767('0x37'))){_0x397e95[_0xf767('0x1a')]=qs[_0xf767('0x1a')](_0x3889ef[_0xf767('0x32')][_0xf767('0x1a')]);_0x397e95[_0xf767('0x19')]=qs[_0xf767('0x19')](_0x3889ef[_0xf767('0x32')][_0xf767('0x19')]);}_0x397e95[_0xf767('0x38')]=qs['sort'](_0x3889ef[_0xf767('0x32')][_0xf767('0x39')]);_0x397e95['where']=qs[_0xf767('0x3a')](_['pick'](_0x3889ef[_0xf767('0x32')],_0x31f49f[_0xf767('0x3a')]),_0x4bddf6);if(_0x3889ef[_0xf767('0x32')]['filter']){_0x397e95[_0xf767('0x3b')]=_[_0xf767('0x3c')](_0x397e95[_0xf767('0x3b')],{'$or':_['map'](_0x4bddf6,function(_0x23e7dc){if(_0x23e7dc[_0xf767('0x30')]!=='VIRTUAL'){var _0x29fd38={};_0x29fd38[_0x23e7dc[_0xf767('0x29')]]={'$like':'%'+_0x3889ef[_0xf767('0x32')][_0xf767('0x3d')]+'%'};return _0x29fd38;}})});}_0x397e95=_[_0xf767('0x3c')]({},_0x397e95,_0x3889ef[_0xf767('0x3e')]);var _0x473853={'where':_0x397e95[_0xf767('0x3b')]};return db[_0xf767('0x2e')][_0xf767('0x3f')](_0x473853)[_0xf767('0x22')](function(_0x49bb16){_0x40b5b2[_0xf767('0x3f')]=_0x49bb16;if(_0x3889ef['query']['includeAll']){_0x397e95[_0xf767('0x40')]=[{'all':!![]}];}return db[_0xf767('0x2e')][_0xf767('0x41')](_0x397e95);})['then'](function(_0x48e841){_0x40b5b2[_0xf767('0x42')]=_0x48e841;return _0x40b5b2;})['then'](respondWithFilteredResult(_0x59e164,_0x397e95))[_0xf767('0x43')](handleError(_0x59e164,null));};exports[_0xf767('0x44')]=function(_0x201c96,_0x41ecbd){var _0x6eb8da={'raw':![],'where':{'id':_0x201c96['params']['id']}},_0x2b08d4={};_0x2b08d4[_0xf767('0x31')]=_[_0xf767('0x45')](db[_0xf767('0x2e')][_0xf767('0x2f')]);_0x2b08d4[_0xf767('0x32')]=_[_0xf767('0x45')](_0x201c96[_0xf767('0x32')]);_0x2b08d4['filters']=_[_0xf767('0x46')](_0x2b08d4[_0xf767('0x31')],_0x2b08d4[_0xf767('0x32')]);_0x6eb8da[_0xf767('0x33')]=_['intersection'](_0x2b08d4[_0xf767('0x31')],qs[_0xf767('0x34')](_0x201c96[_0xf767('0x32')][_0xf767('0x34')]));_0x6eb8da[_0xf767('0x33')]=_0x6eb8da['attributes'][_0xf767('0x35')]?_0x6eb8da[_0xf767('0x33')]:_0x2b08d4[_0xf767('0x31')];if(_0x201c96[_0xf767('0x32')][_0xf767('0x47')]){_0x6eb8da['include']=[{'all':!![]}];}_0x6eb8da=_[_0xf767('0x3c')]({},_0x6eb8da,_0x201c96[_0xf767('0x3e')]);return db[_0xf767('0x2e')][_0xf767('0x48')](_0x6eb8da)[_0xf767('0x22')](handleEntityNotFound(_0x41ecbd,null))['then'](respondWithResult(_0x41ecbd,null))[_0xf767('0x43')](handleError(_0x41ecbd,null));};exports[_0xf767('0x49')]=function(_0x32eefd,_0x4a44a2){return db[_0xf767('0x2e')][_0xf767('0x49')](_0x32eefd[_0xf767('0x4a')],{})[_0xf767('0x22')](function(_0x4f38e8){var _0x35d849=_0x32eefd[_0xf767('0x4b')][_0xf767('0x24')]({'plain':!![]});if(!_0x35d849)throw new Error(_0xf767('0x4c'));if(_0x35d849[_0xf767('0x4d')]===_0xf767('0x4b')){var _0x1a77e7=_0x4f38e8[_0xf767('0x24')]({'plain':!![]});var _0x291f89=_0xf767('0x4e');return db['UserProfileSection']['find']({'where':{'name':_0x291f89,'userProfileId':_0x35d849[_0xf767('0x4f')]},'raw':!![]})[_0xf767('0x22')](function(_0xfa8d71){if(_0xfa8d71&&_0xfa8d71[_0xf767('0x50')]===0x0){return db[_0xf767('0x25')]['create']({'name':_0x1a77e7['name'],'resourceId':_0x1a77e7['id'],'type':_0xfa8d71[_0xf767('0x29')],'sectionId':_0xfa8d71['id']},{})[_0xf767('0x22')](function(){return _0x4f38e8;});}else{return _0x4f38e8;}})['catch'](function(_0x5585c8){logger[_0xf767('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5585c8);throw _0x5585c8;});}return _0x4f38e8;})[_0xf767('0x22')](respondWithResult(_0x4a44a2,0xc9))[_0xf767('0x43')](handleError(_0x4a44a2,null));};exports[_0xf767('0x21')]=function(_0xe17843,_0x43dc55){if(_0xe17843['body']['id']){delete _0xe17843[_0xf767('0x4a')]['id'];}return db['Schedule'][_0xf767('0x48')]({'where':{'id':_0xe17843[_0xf767('0x51')]['id']}})[_0xf767('0x22')](handleEntityNotFound(_0x43dc55,null))[_0xf767('0x22')](saveUpdates(_0xe17843['body'],null))['then'](respondWithResult(_0x43dc55,null))[_0xf767('0x43')](handleError(_0x43dc55,null));};exports[_0xf767('0x23')]=function(_0x119cd9,_0x4ef0d2){return db[_0xf767('0x2e')]['find']({'where':{'id':_0x119cd9[_0xf767('0x51')]['id']}})['then'](handleEntityNotFound(_0x4ef0d2,null))[_0xf767('0x22')](removeEntity(_0x4ef0d2,null))[_0xf767('0x43')](handleError(_0x4ef0d2,null));};exports[_0xf767('0x52')]=function(_0x278c30,_0x333e15,_0x523f5c){var _0x56c02f=require(_0xf767('0x53'));return db[_0xf767('0x2e')][_0xf767('0x48')]({'where':{'id':_0x278c30[_0xf767('0x51')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x333e15,null))[_0xf767('0x22')](function(){_0x56c02f[_0xf767('0x52')](_0x278c30[_0xf767('0x51')]['id']);})[_0xf767('0x22')](respondWithStatusCode(_0x333e15,null))[_0xf767('0x43')](handleError(_0x333e15,null));};