8426961479021c901b33063883d9b7366960968f
[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 _0xf17d=['filter','merge','VIRTUAL','includeAll','include','rows','catch','show','params','length','options','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','run','../../config/schedule','eml-format','rimraf','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','Scheduler','UserProfileResource','error','stack','name','send','index','map','Schedule','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','where'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf17d,0x113));var _0xdf17=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0xf17d[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0xdf17('0x0'));var rimraf=require(_0xdf17('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xdf17('0x2'));var moment=require(_0xdf17('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xdf17('0x4'));var util=require(_0xdf17('0x5'));var path=require(_0xdf17('0x6'));var sox=require(_0xdf17('0x7'));var csv=require(_0xdf17('0x8'));var ejs=require(_0xdf17('0x9'));var fs=require('fs');var fs_extra=require(_0xdf17('0xa'));var _=require(_0xdf17('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xdf17('0xc'));var toCsv=require('to-csv');var querystring=require(_0xdf17('0xd'));var Papa=require(_0xdf17('0xe'));var Redis=require(_0xdf17('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xdf17('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xdf17('0x11'));var logger=require(_0xdf17('0x12'))('api');var utils=require(_0xdf17('0x13'));var config=require(_0xdf17('0x14'));var licenseUtil=require(_0xdf17('0x15'));var db=require(_0xdf17('0x16'))['db'];function respondWithStatusCode(_0x19acef,_0x244b69){_0x244b69=_0x244b69||0xcc;return function(_0x554e77){if(_0x554e77){return _0x19acef[_0xdf17('0x17')](_0x244b69);}return _0x19acef['status'](_0x244b69)[_0xdf17('0x18')]();};}function respondWithResult(_0x2d01d4,_0x2f1e2a){_0x2f1e2a=_0x2f1e2a||0xc8;return function(_0x5c9173){if(_0x5c9173){return _0x2d01d4[_0xdf17('0x19')](_0x2f1e2a)[_0xdf17('0x1a')](_0x5c9173);}};}function respondWithFilteredResult(_0x5136a4,_0x592184){return function(_0x379f85){if(_0x379f85){var _0x7158a5=typeof _0x592184[_0xdf17('0x1b')]===_0xdf17('0x1c')&&typeof _0x592184[_0xdf17('0x1d')]===_0xdf17('0x1c');var _0x141382=_0x379f85[_0xdf17('0x1e')];var _0x197142=_0x7158a5?0x0:_0x592184[_0xdf17('0x1b')];var _0x1ccb5d=_0x7158a5?_0x379f85[_0xdf17('0x1e')]:_0x592184[_0xdf17('0x1b')]+_0x592184['limit'];var _0x5f16c5;if(_0x1ccb5d>=_0x141382){_0x1ccb5d=_0x141382;_0x5f16c5=0xc8;}else{_0x5f16c5=0xce;}_0x5136a4[_0xdf17('0x19')](_0x5f16c5);return _0x5136a4[_0xdf17('0x1f')](_0xdf17('0x20'),_0x197142+'-'+_0x1ccb5d+'/'+_0x141382)['json'](_0x379f85);}return null;};}function patchUpdates(_0x3f87d7){return function(_0x4d51a1){try{jsonpatch[_0xdf17('0x21')](_0x4d51a1,_0x3f87d7,!![]);}catch(_0x5cff8d){return BPromise[_0xdf17('0x22')](_0x5cff8d);}return _0x4d51a1['save']();};}function saveUpdates(_0xa5dffb,_0x2ee067){return function(_0x25aa37){if(_0x25aa37){return _0x25aa37[_0xdf17('0x23')](_0xa5dffb)[_0xdf17('0x24')](function(_0x19465e){return _0x19465e;});}return null;};}function removeEntity(_0x1a3bdd,_0x4cc753){return function(_0x68c52){if(_0x68c52){return _0x68c52[_0xdf17('0x25')]()[_0xdf17('0x24')](function(){var _0x2b7d1a=_0x68c52['get']({'plain':!![]});var _0x274707=_0xdf17('0x26');return db[_0xdf17('0x27')][_0xdf17('0x25')]({'where':{'type':_0x274707,'resourceId':_0x2b7d1a['id']}})[_0xdf17('0x24')](function(){return _0x68c52;});})[_0xdf17('0x24')](function(){_0x1a3bdd['status'](0xcc)[_0xdf17('0x18')]();});}};}function handleEntityNotFound(_0x427822,_0x2b87a6){return function(_0x5de29d){if(!_0x5de29d){_0x427822[_0xdf17('0x17')](0x194);}return _0x5de29d;};}function handleError(_0x5218aa,_0x1c0d94){_0x1c0d94=_0x1c0d94||0x1f4;return function(_0x4dd46b){logger[_0xdf17('0x28')](_0x4dd46b[_0xdf17('0x29')]);if(_0x4dd46b[_0xdf17('0x2a')]){delete _0x4dd46b['name'];}_0x5218aa[_0xdf17('0x19')](_0x1c0d94)[_0xdf17('0x2b')](_0x4dd46b);};}exports[_0xdf17('0x2c')]=function(_0x428ba9,_0x4dc6fd){var _0x191252={},_0x43ba7e={},_0x606276={'count':0x0,'rows':[]};var _0x8371d=_[_0xdf17('0x2d')](db[_0xdf17('0x2e')][_0xdf17('0x2f')],function(_0x45f2b7){return{'name':_0x45f2b7[_0xdf17('0x30')],'type':_0x45f2b7[_0xdf17('0x31')][_0xdf17('0x32')]};});_0x43ba7e[_0xdf17('0x33')]=_[_0xdf17('0x2d')](_0x8371d,_0xdf17('0x2a'));_0x43ba7e[_0xdf17('0x34')]=_[_0xdf17('0x35')](_0x428ba9['query']);_0x43ba7e[_0xdf17('0x36')]=_['intersection'](_0x43ba7e['model'],_0x43ba7e[_0xdf17('0x34')]);_0x191252[_0xdf17('0x37')]=_[_0xdf17('0x38')](_0x43ba7e[_0xdf17('0x33')],qs[_0xdf17('0x39')](_0x428ba9[_0xdf17('0x34')]['fields']));_0x191252['attributes']=_0x191252['attributes']['length']?_0x191252['attributes']:_0x43ba7e[_0xdf17('0x33')];if(!_0x428ba9['query'][_0xdf17('0x3a')](_0xdf17('0x3b'))){_0x191252[_0xdf17('0x1d')]=qs[_0xdf17('0x1d')](_0x428ba9[_0xdf17('0x34')][_0xdf17('0x1d')]);_0x191252[_0xdf17('0x1b')]=qs[_0xdf17('0x1b')](_0x428ba9['query'][_0xdf17('0x1b')]);}_0x191252['order']=qs['sort'](_0x428ba9['query']['sort']);_0x191252[_0xdf17('0x3c')]=qs[_0xdf17('0x36')](_['pick'](_0x428ba9[_0xdf17('0x34')],_0x43ba7e[_0xdf17('0x36')]),_0x8371d);if(_0x428ba9[_0xdf17('0x34')][_0xdf17('0x3d')]){_0x191252[_0xdf17('0x3c')]=_[_0xdf17('0x3e')](_0x191252['where'],{'$or':_['map'](_0x8371d,function(_0x42826e){if(_0x42826e['type']!==_0xdf17('0x3f')){var _0x126d08={};_0x126d08[_0x42826e[_0xdf17('0x2a')]]={'$like':'%'+_0x428ba9[_0xdf17('0x34')][_0xdf17('0x3d')]+'%'};return _0x126d08;}})});}_0x191252=_[_0xdf17('0x3e')]({},_0x191252,_0x428ba9['options']);var _0x29314e={'where':_0x191252[_0xdf17('0x3c')]};return db[_0xdf17('0x2e')][_0xdf17('0x1e')](_0x29314e)[_0xdf17('0x24')](function(_0xbdf463){_0x606276[_0xdf17('0x1e')]=_0xbdf463;if(_0x428ba9[_0xdf17('0x34')][_0xdf17('0x40')]){_0x191252[_0xdf17('0x41')]=[{'all':!![]}];}return db[_0xdf17('0x2e')]['findAll'](_0x191252);})['then'](function(_0x1cc0a7){_0x606276[_0xdf17('0x42')]=_0x1cc0a7;return _0x606276;})['then'](respondWithFilteredResult(_0x4dc6fd,_0x191252))[_0xdf17('0x43')](handleError(_0x4dc6fd,null));};exports[_0xdf17('0x44')]=function(_0x4edee2,_0x267590){var _0x1dde7d={'raw':![],'where':{'id':_0x4edee2[_0xdf17('0x45')]['id']}},_0x379d3b={};_0x379d3b[_0xdf17('0x33')]=_[_0xdf17('0x35')](db[_0xdf17('0x2e')][_0xdf17('0x2f')]);_0x379d3b[_0xdf17('0x34')]=_[_0xdf17('0x35')](_0x4edee2[_0xdf17('0x34')]);_0x379d3b['filters']=_[_0xdf17('0x38')](_0x379d3b[_0xdf17('0x33')],_0x379d3b[_0xdf17('0x34')]);_0x1dde7d[_0xdf17('0x37')]=_[_0xdf17('0x38')](_0x379d3b['model'],qs[_0xdf17('0x39')](_0x4edee2[_0xdf17('0x34')][_0xdf17('0x39')]));_0x1dde7d[_0xdf17('0x37')]=_0x1dde7d[_0xdf17('0x37')][_0xdf17('0x46')]?_0x1dde7d[_0xdf17('0x37')]:_0x379d3b[_0xdf17('0x33')];if(_0x4edee2[_0xdf17('0x34')][_0xdf17('0x40')]){_0x1dde7d['include']=[{'all':!![]}];}_0x1dde7d=_[_0xdf17('0x3e')]({},_0x1dde7d,_0x4edee2[_0xdf17('0x47')]);return db[_0xdf17('0x2e')][_0xdf17('0x48')](_0x1dde7d)[_0xdf17('0x24')](handleEntityNotFound(_0x267590,null))[_0xdf17('0x24')](respondWithResult(_0x267590,null))[_0xdf17('0x43')](handleError(_0x267590,null));};exports[_0xdf17('0x49')]=function(_0x1c3800,_0x3db023){return db[_0xdf17('0x2e')][_0xdf17('0x49')](_0x1c3800['body'],{})[_0xdf17('0x24')](function(_0x21a952){var _0x32cd5e=_0x1c3800[_0xdf17('0x4a')][_0xdf17('0x4b')]({'plain':!![]});if(!_0x32cd5e)throw new Error(_0xdf17('0x4c'));if(_0x32cd5e[_0xdf17('0x4d')]===_0xdf17('0x4a')){var _0x595550=_0x21a952[_0xdf17('0x4b')]({'plain':!![]});var _0x36ff6d=_0xdf17('0x26');return db[_0xdf17('0x4e')][_0xdf17('0x48')]({'where':{'name':_0x36ff6d,'userProfileId':_0x32cd5e['userProfileId']},'raw':!![]})['then'](function(_0x1ecf33){if(_0x1ecf33&&_0x1ecf33[_0xdf17('0x4f')]===0x0){return db[_0xdf17('0x27')][_0xdf17('0x49')]({'name':_0x595550[_0xdf17('0x2a')],'resourceId':_0x595550['id'],'type':_0x1ecf33[_0xdf17('0x2a')],'sectionId':_0x1ecf33['id']},{})[_0xdf17('0x24')](function(){return _0x21a952;});}else{return _0x21a952;}})[_0xdf17('0x43')](function(_0x3b571c){logger[_0xdf17('0x28')](_0xdf17('0x50'),_0x3b571c);throw _0x3b571c;});}return _0x21a952;})['then'](respondWithResult(_0x3db023,0xc9))[_0xdf17('0x43')](handleError(_0x3db023,null));};exports[_0xdf17('0x23')]=function(_0x398aa6,_0xd04490){if(_0x398aa6[_0xdf17('0x51')]['id']){delete _0x398aa6['body']['id'];}return db[_0xdf17('0x2e')][_0xdf17('0x48')]({'where':{'id':_0x398aa6['params']['id']}})[_0xdf17('0x24')](handleEntityNotFound(_0xd04490,null))[_0xdf17('0x24')](saveUpdates(_0x398aa6[_0xdf17('0x51')],null))[_0xdf17('0x24')](respondWithResult(_0xd04490,null))[_0xdf17('0x43')](handleError(_0xd04490,null));};exports[_0xdf17('0x25')]=function(_0x4d39ca,_0x295f2b){return db[_0xdf17('0x2e')][_0xdf17('0x48')]({'where':{'id':_0x4d39ca[_0xdf17('0x45')]['id']}})[_0xdf17('0x24')](handleEntityNotFound(_0x295f2b,null))[_0xdf17('0x24')](removeEntity(_0x295f2b,null))['catch'](handleError(_0x295f2b,null));};exports[_0xdf17('0x52')]=function(_0xcd5f94,_0x260a7d,_0x1edaf5){var _0x1e0dee=require(_0xdf17('0x53'));return db['Schedule'][_0xdf17('0x48')]({'where':{'id':_0xcd5f94[_0xdf17('0x45')]['id']},'raw':!![]})[_0xdf17('0x24')](handleEntityNotFound(_0x260a7d,null))[_0xdf17('0x24')](function(){_0x1e0dee[_0xdf17('0x52')](_0xcd5f94[_0xdf17('0x45')]['id']);})[_0xdf17('0x24')](respondWithStatusCode(_0x260a7d,null))[_0xdf17('0x43')](handleError(_0x260a7d,null));};