6551b0d1b3ed781f22f9b1683393ede8730107c3
[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 _0xd2fe=['ejs','squel','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','count','limit','Content-Range','apply','save','then','Scheduler','name','send','map','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','hasOwnProperty','nolimit','offset','order','sort','where','filters','pick','filter','VIRTUAL','merge','includeAll','include','Schedule','rows','show','params','keys','length','options','find','catch','create','user','role','get','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','run','../../config/schedule','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv'];(function(_0x14477e,_0x44d4da){var _0x5d4a05=function(_0x5e0fa3){while(--_0x5e0fa3){_0x14477e['push'](_0x14477e['shift']());}};_0x5d4a05(++_0x44d4da);}(_0xd2fe,0x138));var _0xed2f=function(_0x5f37b1,_0x26fb91){_0x5f37b1=_0x5f37b1-0x0;var _0x31ab85=_0xd2fe[_0x5f37b1];return _0x31ab85;};'use strict';var pdf=require(_0xed2f('0x0'));var emlformat=require(_0xed2f('0x1'));var rimraf=require(_0xed2f('0x2'));var zipdir=require(_0xed2f('0x3'));var jsonpatch=require(_0xed2f('0x4'));var rp=require(_0xed2f('0x5'));var moment=require(_0xed2f('0x6'));var BPromise=require(_0xed2f('0x7'));var Mustache=require(_0xed2f('0x8'));var util=require('util');var path=require(_0xed2f('0x9'));var sox=require(_0xed2f('0xa'));var csv=require(_0xed2f('0xb'));var ejs=require(_0xed2f('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0xed2f('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xed2f('0xe'));var toCsv=require('to-csv');var querystring=require(_0xed2f('0xf'));var Papa=require('papaparse');var Redis=require(_0xed2f('0x10'));var authService=require(_0xed2f('0x11'));var qs=require(_0xed2f('0x12'));var as=require(_0xed2f('0x13'));var hardwareService=require(_0xed2f('0x14'));var logger=require(_0xed2f('0x15'))('api');var utils=require(_0xed2f('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xed2f('0x17'));var db=require(_0xed2f('0x18'))['db'];function respondWithStatusCode(_0x5b1bf4,_0x5125ef){_0x5125ef=_0x5125ef||0xcc;return function(_0x5199a6){if(_0x5199a6){return _0x5b1bf4['sendStatus'](_0x5125ef);}return _0x5b1bf4[_0xed2f('0x19')](_0x5125ef)[_0xed2f('0x1a')]();};}function respondWithResult(_0x8fba7f,_0x191c41){_0x191c41=_0x191c41||0xc8;return function(_0x2a5f8c){if(_0x2a5f8c){return _0x8fba7f[_0xed2f('0x19')](_0x191c41)[_0xed2f('0x1b')](_0x2a5f8c);}};}function respondWithFilteredResult(_0x5bf6a6,_0x2f7c4a){return function(_0x343cca){if(_0x343cca){var _0x285790=_0x343cca[_0xed2f('0x1c')],_0x1f5776=_0x2f7c4a['offset'],_0x6b1005=_0x2f7c4a['offset']+_0x2f7c4a[_0xed2f('0x1d')],_0x39b2b8;if(_0x6b1005>=_0x285790){_0x6b1005=_0x285790;_0x39b2b8=0xc8;}else{_0x39b2b8=0xce;}_0x5bf6a6['status'](_0x39b2b8);return _0x5bf6a6['set'](_0xed2f('0x1e'),_0x1f5776+'-'+_0x6b1005+'/'+_0x285790)['json'](_0x343cca);}return null;};}function patchUpdates(_0x41d211){return function(_0x18b7c2){try{jsonpatch[_0xed2f('0x1f')](_0x18b7c2,_0x41d211,!![]);}catch(_0x208c9){return BPromise['reject'](_0x208c9);}return _0x18b7c2[_0xed2f('0x20')]();};}function saveUpdates(_0x497b1d,_0x4299ec){return function(_0x1dfc8e){if(_0x1dfc8e){return _0x1dfc8e['update'](_0x497b1d)['then'](function(_0x5dd903){return _0x5dd903;});}return null;};}function removeEntity(_0x387026,_0x58554f){return function(_0x9caef){if(_0x9caef){return _0x9caef['destroy']()[_0xed2f('0x21')](function(){var _0x10ae5d=_0x9caef['get']({'plain':!![]});var _0x36d880=_0xed2f('0x22');return db['UserProfileResource']['destroy']({'where':{'type':_0x36d880,'resourceId':_0x10ae5d['id']}})[_0xed2f('0x21')](function(){return _0x9caef;});})[_0xed2f('0x21')](function(){_0x387026[_0xed2f('0x19')](0xcc)[_0xed2f('0x1a')]();});}};}function handleEntityNotFound(_0x35aaf2,_0x345de6){return function(_0x18eb32){if(!_0x18eb32){_0x35aaf2['sendStatus'](0x194);}return _0x18eb32;};}function handleError(_0x1801f9,_0x7e8266){_0x7e8266=_0x7e8266||0x1f4;return function(_0x141837){logger['error'](_0x141837['stack']);if(_0x141837[_0xed2f('0x23')]){delete _0x141837[_0xed2f('0x23')];}_0x1801f9[_0xed2f('0x19')](_0x7e8266)[_0xed2f('0x24')](_0x141837);};}exports['index']=function(_0x13fb0e,_0x8497c3){var _0x4348dd={},_0x38a581={},_0x54ce2e={'count':0x0,'rows':[]};var _0x11f82f=_[_0xed2f('0x25')](db['Schedule'][_0xed2f('0x26')],function(_0x4cafe5){return{'name':_0x4cafe5[_0xed2f('0x27')],'type':_0x4cafe5[_0xed2f('0x28')][_0xed2f('0x29')]};});_0x38a581[_0xed2f('0x2a')]=_[_0xed2f('0x25')](_0x11f82f,_0xed2f('0x23'));_0x38a581[_0xed2f('0x2b')]=_['keys'](_0x13fb0e[_0xed2f('0x2b')]);_0x38a581['filters']=_[_0xed2f('0x2c')](_0x38a581[_0xed2f('0x2a')],_0x38a581[_0xed2f('0x2b')]);_0x4348dd[_0xed2f('0x2d')]=_[_0xed2f('0x2c')](_0x38a581[_0xed2f('0x2a')],qs['fields'](_0x13fb0e[_0xed2f('0x2b')][_0xed2f('0x2e')]));_0x4348dd[_0xed2f('0x2d')]=_0x4348dd['attributes']['length']?_0x4348dd[_0xed2f('0x2d')]:_0x38a581[_0xed2f('0x2a')];if(!_0x13fb0e[_0xed2f('0x2b')][_0xed2f('0x2f')](_0xed2f('0x30'))){_0x4348dd[_0xed2f('0x1d')]=qs[_0xed2f('0x1d')](_0x13fb0e[_0xed2f('0x2b')][_0xed2f('0x1d')]);_0x4348dd[_0xed2f('0x31')]=qs[_0xed2f('0x31')](_0x13fb0e[_0xed2f('0x2b')][_0xed2f('0x31')]);}_0x4348dd[_0xed2f('0x32')]=qs[_0xed2f('0x33')](_0x13fb0e[_0xed2f('0x2b')][_0xed2f('0x33')]);_0x4348dd[_0xed2f('0x34')]=qs[_0xed2f('0x35')](_[_0xed2f('0x36')](_0x13fb0e['query'],_0x38a581[_0xed2f('0x35')]),_0x11f82f);if(_0x13fb0e[_0xed2f('0x2b')][_0xed2f('0x37')]){_0x4348dd[_0xed2f('0x34')]=_['merge'](_0x4348dd[_0xed2f('0x34')],{'$or':_[_0xed2f('0x25')](_0x11f82f,function(_0x45e0b1){if(_0x45e0b1[_0xed2f('0x28')]!==_0xed2f('0x38')){var _0x5acde3={};_0x5acde3[_0x45e0b1[_0xed2f('0x23')]]={'$like':'%'+_0x13fb0e['query'][_0xed2f('0x37')]+'%'};return _0x5acde3;}})});}_0x4348dd=_[_0xed2f('0x39')]({},_0x4348dd,_0x13fb0e['options']);var _0x3fa492={'where':_0x4348dd[_0xed2f('0x34')]};return db['Schedule'][_0xed2f('0x1c')](_0x3fa492)['then'](function(_0x2d3a58){_0x54ce2e['count']=_0x2d3a58;if(_0x13fb0e[_0xed2f('0x2b')][_0xed2f('0x3a')]){_0x4348dd[_0xed2f('0x3b')]=[{'all':!![]}];}return db[_0xed2f('0x3c')]['findAll'](_0x4348dd);})[_0xed2f('0x21')](function(_0x43df15){_0x54ce2e[_0xed2f('0x3d')]=_0x43df15;return _0x54ce2e;})[_0xed2f('0x21')](respondWithFilteredResult(_0x8497c3,_0x4348dd))['catch'](handleError(_0x8497c3,null));};exports[_0xed2f('0x3e')]=function(_0x47e9e6,_0x176430){var _0x25ef2f={'raw':![],'where':{'id':_0x47e9e6[_0xed2f('0x3f')]['id']}},_0xa24fac={};_0xa24fac[_0xed2f('0x2a')]=_['keys'](db[_0xed2f('0x3c')][_0xed2f('0x26')]);_0xa24fac[_0xed2f('0x2b')]=_[_0xed2f('0x40')](_0x47e9e6['query']);_0xa24fac['filters']=_[_0xed2f('0x2c')](_0xa24fac[_0xed2f('0x2a')],_0xa24fac[_0xed2f('0x2b')]);_0x25ef2f['attributes']=_[_0xed2f('0x2c')](_0xa24fac['model'],qs[_0xed2f('0x2e')](_0x47e9e6[_0xed2f('0x2b')]['fields']));_0x25ef2f['attributes']=_0x25ef2f[_0xed2f('0x2d')][_0xed2f('0x41')]?_0x25ef2f[_0xed2f('0x2d')]:_0xa24fac[_0xed2f('0x2a')];if(_0x47e9e6[_0xed2f('0x2b')]['includeAll']){_0x25ef2f['include']=[{'all':!![]}];}_0x25ef2f=_[_0xed2f('0x39')]({},_0x25ef2f,_0x47e9e6[_0xed2f('0x42')]);return db[_0xed2f('0x3c')][_0xed2f('0x43')](_0x25ef2f)['then'](handleEntityNotFound(_0x176430,null))[_0xed2f('0x21')](respondWithResult(_0x176430,null))[_0xed2f('0x44')](handleError(_0x176430,null));};exports[_0xed2f('0x45')]=function(_0x1e25ee,_0x2d2772){return db[_0xed2f('0x3c')][_0xed2f('0x45')](_0x1e25ee['body'],{})['then'](function(_0x256ab6){var _0x23c431=_0x1e25ee[_0xed2f('0x46')]['get']({'plain':!![]});if(!_0x23c431)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x23c431[_0xed2f('0x47')]===_0xed2f('0x46')){var _0x1c8e0a=_0x256ab6[_0xed2f('0x48')]({'plain':!![]});var _0x466932='Scheduler';return db[_0xed2f('0x49')][_0xed2f('0x43')]({'where':{'name':_0x466932,'userProfileId':_0x23c431[_0xed2f('0x4a')]},'raw':!![]})[_0xed2f('0x21')](function(_0x1f6c8a){if(_0x1f6c8a&&_0x1f6c8a['autoAssociation']===0x0){return db['UserProfileResource'][_0xed2f('0x45')]({'name':_0x1c8e0a[_0xed2f('0x23')],'resourceId':_0x1c8e0a['id'],'type':_0x1f6c8a[_0xed2f('0x23')],'sectionId':_0x1f6c8a['id']},{})[_0xed2f('0x21')](function(){return _0x256ab6;});}else{return _0x256ab6;}})[_0xed2f('0x44')](function(_0x623849){logger[_0xed2f('0x4b')](_0xed2f('0x4c'),_0x623849);throw _0x623849;});}return _0x256ab6;})[_0xed2f('0x21')](respondWithResult(_0x2d2772,0xc9))[_0xed2f('0x44')](handleError(_0x2d2772,null));};exports[_0xed2f('0x4d')]=function(_0x218808,_0x24c5ea){if(_0x218808[_0xed2f('0x4e')]['id']){delete _0x218808[_0xed2f('0x4e')]['id'];}return db[_0xed2f('0x3c')][_0xed2f('0x43')]({'where':{'id':_0x218808[_0xed2f('0x3f')]['id']}})[_0xed2f('0x21')](handleEntityNotFound(_0x24c5ea,null))['then'](saveUpdates(_0x218808[_0xed2f('0x4e')],null))[_0xed2f('0x21')](respondWithResult(_0x24c5ea,null))['catch'](handleError(_0x24c5ea,null));};exports['destroy']=function(_0x429937,_0x1cc543){return db[_0xed2f('0x3c')][_0xed2f('0x43')]({'where':{'id':_0x429937[_0xed2f('0x3f')]['id']}})[_0xed2f('0x21')](handleEntityNotFound(_0x1cc543,null))[_0xed2f('0x21')](removeEntity(_0x1cc543,null))[_0xed2f('0x44')](handleError(_0x1cc543,null));};exports[_0xed2f('0x4f')]=function(_0x17178a,_0x3cecdd,_0x54bc0d){var _0x4fea26=require(_0xed2f('0x50'));return db[_0xed2f('0x3c')][_0xed2f('0x43')]({'where':{'id':_0x17178a[_0xed2f('0x3f')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x3cecdd,null))['then'](function(){_0x4fea26[_0xed2f('0x4f')](_0x17178a[_0xed2f('0x3f')]['id']);})[_0xed2f('0x21')](respondWithStatusCode(_0x3cecdd,null))[_0xed2f('0x44')](handleError(_0x3cecdd,null));};