From a0ba25ed2fdb1b7f8e5a1ee6d2bd36b7cd69fc24 Mon Sep 17 00:00:00 2001 From: Alex Rennie-Lis Date: Sun, 7 Apr 2024 11:15:50 +0100 Subject: [PATCH] Resolved issue #5 --- code/index.js | 60 ++++++++++++++++++++++++++------------------ code/lib/handlers.js | 2 ++ 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/code/index.js b/code/index.js index 782872e..73084ab 100644 --- a/code/index.js +++ b/code/index.js @@ -87,15 +87,41 @@ listeners.accounting.socket.on ('listening', () => { listeners.accounting.socket.bind (config.ports.radius_accounting); // HTTP listener +const respond = (res, content, status) { + res.write (content); + res.statusCode = status; + res.end (); +}; + http.createServer(function (req, res) { var url = req.url.substring (0, req.url.lastIndexOf ("/")) || req.url; var endpoint = req.method + " " + url; switch (endpoint) { case "GET /health": - res.write ('OK\n\n'); - res.statusCode = 200; - res.end (); + respond (res, "OK\n\n", 200); + break; + + 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; case "POST /user": @@ -106,14 +132,10 @@ http.createServer(function (req, res) { req.on ('end', () => { handlers.user.create (payload, (status, err) => { if (err) { - res.write ('Error\n'); - res.statusCode = 500; - res.end (); + respond (res, "Error\n\n", 500); } else { - res.write (status); - res.statusCode = 200; - res.end (); + respond (res, status, 200); } }); }); @@ -127,14 +149,10 @@ http.createServer(function (req, res) { req.on ('end', () => { handlers.user.update (payload, (status, err) => { if (err) { - res.write ('Error\n'); - res.statusCode = 500; - res.end (); + respond (res, "Error\n\n", 500); } else { - res.write (status); - res.statusCode = 200; - res.end (); + respond (res, status, 200); } }); }); @@ -143,22 +161,16 @@ http.createServer(function (req, res) { case "DELETE /user": handlers.user.delete (req.url.substring (req.url.lastIndexOf ("/") + 1), (status, err) => { if (err) { - res.write ('Error\n'); - res.statusCode = 500; - res.end (); + respond (res, "Error\n\n", 500); } else { - res.write (status); - res.statusCode = 200; - res.end (); + respond (res, status, 200); } }); break; default: - res.write ('Not found\n'); - res.statusCode = 404; - res.end (); + respond (res, "Not found\n\n", 404); } }).listen (8080); diff --git a/code/lib/handlers.js b/code/lib/handlers.js index 7979ebe..1433a6d 100644 --- a/code/lib/handlers.js +++ b/code/lib/handlers.js @@ -57,6 +57,8 @@ module.exports = { }, user: { create: data.createUser, + getall: data.getUsers, + getone: data.getUser, update: data.updateUser, delete: data.deleteUser }