mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-09 00:18:00 +01:00
chore(modernize): Modernize ClientIndexController
This commit is contained in:
parent
461011b894
commit
8913c4fac5
14
lib/routes/client-api/client-api.json
Normal file
14
lib/routes/client-api/client-api.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"links": {
|
||||||
|
"feature-toggles": {
|
||||||
|
"uri": "/api/client/features"
|
||||||
|
},
|
||||||
|
"register": {
|
||||||
|
"uri": "/api/client/register"
|
||||||
|
},
|
||||||
|
"metrics": {
|
||||||
|
"uri": "/api/client/metrics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,14 +1,10 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const { Router } = require('express');
|
const { Router } = require('express');
|
||||||
|
const { filter } = require('./util');
|
||||||
|
|
||||||
const version = 1;
|
const version = 1;
|
||||||
|
|
||||||
const filter = (key, value) => {
|
|
||||||
if (!key || !value) return array => array;
|
|
||||||
return array => array.filter(item => item[key].startsWith(value));
|
|
||||||
};
|
|
||||||
|
|
||||||
class FeatureController {
|
class FeatureController {
|
||||||
constructor(config) {
|
constructor(config) {
|
||||||
const router = Router();
|
const router = Router();
|
||||||
|
@ -4,27 +4,28 @@ const { Router } = require('express');
|
|||||||
const FeatureController = require('./feature.js');
|
const FeatureController = require('./feature.js');
|
||||||
const metrics = require('./metrics.js');
|
const metrics = require('./metrics.js');
|
||||||
const register = require('./register.js');
|
const register = require('./register.js');
|
||||||
|
const clientApi = require('./client-api.json');
|
||||||
|
|
||||||
const apiDef = {
|
class ClientApi {
|
||||||
version: 2,
|
constructor(config) {
|
||||||
links: {
|
|
||||||
'feature-toggles': { uri: '/api/client/features' },
|
|
||||||
register: { uri: '/api/client/register' },
|
|
||||||
metrics: { uri: '/api/client/metrics' },
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.apiDef = apiDef;
|
|
||||||
|
|
||||||
exports.router = config => {
|
|
||||||
const router = Router();
|
const router = Router();
|
||||||
router.get('/', (req, res) => {
|
this._router = router;
|
||||||
res.json(apiDef);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
router.get('/', this.index);
|
||||||
router.use('/features', new FeatureController(config).router());
|
router.use('/features', new FeatureController(config).router());
|
||||||
router.use('/metrics', metrics.router(config));
|
router.use('/metrics', metrics.router(config));
|
||||||
router.use('/register', register.router(config));
|
router.use('/register', register.router(config));
|
||||||
|
}
|
||||||
|
|
||||||
return router;
|
index(req, res) {
|
||||||
};
|
res.json(clientApi);
|
||||||
|
}
|
||||||
|
|
||||||
|
router() {
|
||||||
|
return this._router;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ClientApi.api = clientApi;
|
||||||
|
|
||||||
|
module.exports = ClientApi;
|
||||||
|
10
lib/routes/client-api/util.js
Normal file
10
lib/routes/client-api/util.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const filter = (key, value) => {
|
||||||
|
if (!key || !value) return array => array;
|
||||||
|
return array => array.filter(item => item[key].startsWith(value));
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
filter,
|
||||||
|
};
|
@ -7,7 +7,7 @@ require('pkginfo')(module, 'version');
|
|||||||
const version = module.exports.version;
|
const version = module.exports.version;
|
||||||
|
|
||||||
const adminApi = require('./admin-api');
|
const adminApi = require('./admin-api');
|
||||||
const clientApi = require('./client-api');
|
const ClientApi = require('./client-api');
|
||||||
const FeatureController = require('./client-api/feature.js');
|
const FeatureController = require('./client-api/feature.js');
|
||||||
|
|
||||||
const HealthCheckController = require('./health-check');
|
const HealthCheckController = require('./health-check');
|
||||||
@ -25,7 +25,7 @@ class IndexRouter {
|
|||||||
);
|
);
|
||||||
router.get('/api', (req, res) => this.api(req, res));
|
router.get('/api', (req, res) => this.api(req, res));
|
||||||
router.use('/api/admin', adminApi.router(config));
|
router.use('/api/admin', adminApi.router(config));
|
||||||
router.use('/api/client', clientApi.router(config));
|
router.use('/api/client', new ClientApi(config).router());
|
||||||
|
|
||||||
// legacy support (remove in 4.x)
|
// legacy support (remove in 4.x)
|
||||||
if (config.enableLegacyRoutes) {
|
if (config.enableLegacyRoutes) {
|
||||||
@ -44,7 +44,7 @@ class IndexRouter {
|
|||||||
},
|
},
|
||||||
client: {
|
client: {
|
||||||
uri: '/api/client',
|
uri: '/api/client',
|
||||||
links: clientApi.apiDef.links,
|
links: ClientApi.api.links,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user