1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/lib/routes/client-api/register.js
2020-02-20 08:34:03 +01:00

41 lines
1.2 KiB
JavaScript

'use strict';
const { Router } = require('express');
const joi = require('joi');
const logger = require('../../logger')('/client-api/register.js');
const { clientRegisterSchema } = require('./register-schema');
exports.router = config => {
const { clientInstanceStore, clientApplicationsStore } = config.stores;
const router = Router();
router.post('/', (req, res) => {
const data = req.body;
joi.validate(data, clientRegisterSchema, (err, clientRegistration) => {
if (err) {
logger.warn('Invalid client data posted', err);
return res.status(400).json(err);
}
clientRegistration.clientIp = req.ip;
clientApplicationsStore
.upsert(clientRegistration)
.then(() => clientInstanceStore.insert(clientRegistration))
.then(() =>
logger.info(`New client registered with
appName=${clientRegistration.appName} and instanceId=${
clientRegistration.instanceId
}`)
)
.catch(err => logger.error('failed to register client', err));
res.status(202).end();
});
});
return router;
};