1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-23 20:07:40 +02:00
unleash.unleash/lib/routes/client-api/register.js

32 lines
912 B
JavaScript
Raw Normal View History

'use strict';
const Controller = require('../controller');
class RegisterController extends Controller {
constructor({ clientMetricsService }, getLogger) {
super();
this.logger = getLogger('/api/client/register');
this.metrics = clientMetricsService;
this.post('/', this.handleRegister);
}
async handleRegister(req, res) {
const data = req.body;
try {
const clientIp = req.ip;
await this.metrics.registerClient(data, clientIp);
return res.status(202).end();
} catch (err) {
this.logger.warn('failed to register client', err);
switch (err.name) {
case 'ValidationError':
return res.status(400).end();
default:
return res.status(500).end();
}
}
}
}
module.exports = RegisterController;