Resolved issue #5

This commit is contained in:
Alex Rennie-Lis 2024-04-07 11:15:50 +01:00
parent cea5bd89ed
commit a0ba25ed2f
2 changed files with 38 additions and 24 deletions

View File

@ -87,15 +87,41 @@ listeners.accounting.socket.on ('listening', () => {
listeners.accounting.socket.bind (config.ports.radius_accounting); listeners.accounting.socket.bind (config.ports.radius_accounting);
// HTTP listener // HTTP listener
const respond = (res, content, status) {
res.write (content);
res.statusCode = status;
res.end ();
};
http.createServer(function (req, res) { http.createServer(function (req, res) {
var url = req.url.substring (0, req.url.lastIndexOf ("/")) || req.url; var url = req.url.substring (0, req.url.lastIndexOf ("/")) || req.url;
var endpoint = req.method + " " + url; var endpoint = req.method + " " + url;
switch (endpoint) { switch (endpoint) {
case "GET /health": case "GET /health":
res.write ('OK\n\n'); respond (res, "OK\n\n", 200);
res.statusCode = 200; break;
res.end ();
case "GET /users":
handlers.user.getall ((users, err) => {
if (!err) {
respond (res, users, 200);
}
else {
respond (res, err, 404);
}
});
break;
case "GET /user/":
handlers.user.getone (req.url.substring (req.url.lastIndexOf ("/") + 1), (user, err) => {
if (err) {
respond (res, "Error\n\n", 500);
}
else {
respond (res, user, 200);
}
});
break; break;
case "POST /user": case "POST /user":
@ -106,14 +132,10 @@ http.createServer(function (req, res) {
req.on ('end', () => { req.on ('end', () => {
handlers.user.create (payload, (status, err) => { handlers.user.create (payload, (status, err) => {
if (err) { if (err) {
res.write ('Error\n'); respond (res, "Error\n\n", 500);
res.statusCode = 500;
res.end ();
} }
else { else {
res.write (status); respond (res, status, 200);
res.statusCode = 200;
res.end ();
} }
}); });
}); });
@ -127,14 +149,10 @@ http.createServer(function (req, res) {
req.on ('end', () => { req.on ('end', () => {
handlers.user.update (payload, (status, err) => { handlers.user.update (payload, (status, err) => {
if (err) { if (err) {
res.write ('Error\n'); respond (res, "Error\n\n", 500);
res.statusCode = 500;
res.end ();
} }
else { else {
res.write (status); respond (res, status, 200);
res.statusCode = 200;
res.end ();
} }
}); });
}); });
@ -143,22 +161,16 @@ http.createServer(function (req, res) {
case "DELETE /user": case "DELETE /user":
handlers.user.delete (req.url.substring (req.url.lastIndexOf ("/") + 1), (status, err) => { handlers.user.delete (req.url.substring (req.url.lastIndexOf ("/") + 1), (status, err) => {
if (err) { if (err) {
res.write ('Error\n'); respond (res, "Error\n\n", 500);
res.statusCode = 500;
res.end ();
} }
else { else {
res.write (status); respond (res, status, 200);
res.statusCode = 200;
res.end ();
} }
}); });
break; break;
default: default:
res.write ('Not found\n'); respond (res, "Not found\n\n", 404);
res.statusCode = 404;
res.end ();
} }
}).listen (8080); }).listen (8080);

View File

@ -57,6 +57,8 @@ module.exports = {
}, },
user: { user: {
create: data.createUser, create: data.createUser,
getall: data.getUsers,
getone: data.getUser,
update: data.updateUser, update: data.updateUser,
delete: data.deleteUser delete: data.deleteUser
} }