diff --git a/src/api/routes/auth/accountRoutes.js b/src/api/routes/auth/accountRoutes.js
index 76452e3..a2181d1 100644
--- a/src/api/routes/auth/accountRoutes.js
+++ b/src/api/routes/auth/accountRoutes.js
@@ -9,6 +9,13 @@ export const registerRoute = {
path: '/auth/register',
methods: {
post: new RouteMethod({
+ description: 'Create a new user',
+ exampleBody: {
+ username: '{{username}}',
+ email: '{{email}}',
+ password: '{{email}}',
+ type: '{{userType}}'
+ },
async method(req, res) {
const data = await RegisterDto.create(req.body);
await registerUser(data);
@@ -25,6 +32,12 @@ export const loginRoute = {
path: '/auth/login',
methods: {
post: new RouteMethod({
+ description: 'Log in as a user',
+ exampleBody: {
+ username: '{{username}}',
+ email: '{{email}}',
+ password: '{{email}}'
+ },
async method(req, res) {
const data = await AuthDto.create(req.body);
const loginResult = await loginUser(
@@ -44,6 +57,10 @@ export const logoutRoute = {
path: '/auth/logout',
methods: {
post: new RouteMethod({
+ description: 'Log out from a device (TODO)',
+ exampleHeaders: {
+ Authorization: 'Bearer {{accessToken}}'
+ },
async method(req, res) {
const data = await AuthDto.create(req.body);
// const loginResult = await deleteDevice(data, );
@@ -60,6 +77,12 @@ export const deleteRoute = {
path: '/auth/delete',
methods: {
delete: new RouteMethod({
+ description: 'Delete account',
+ exampleBody: {
+ username: '{{username}}',
+ email: '{{email}}',
+ password: '{{email}}'
+ },
async method(req, res) {
const data = await AuthDto.create(req.body);
await deleteUser(data);
diff --git a/src/api/routes/auth/adminAccountRoutes.js b/src/api/routes/auth/adminAccountRoutes.js
index eb9b270..2153945 100644
--- a/src/api/routes/auth/adminAccountRoutes.js
+++ b/src/api/routes/auth/adminAccountRoutes.js
@@ -10,6 +10,10 @@ export const adminGetUsersRoute = {
path: '/admin/users',
methods: {
get: new RouteMethod({
+ description: 'Get all users (raw)',
+ exampleHeaders: {
+ Authorization: 'Bearer {{accessToken}}'
+ },
middlewares: [requireAdmin],
async method(req, res) {
res.send(DbUser.find({}).exec());
@@ -25,6 +29,10 @@ export const adminUserRoute = {
path: '/admin/user/:id',
methods: {
get: new RouteMethod({
+ description: 'Get a user (raw)',
+ exampleHeaders: {
+ Authorization: 'Bearer {{accessToken}}'
+ },
middlewares: [requireAdmin],
async method(req, res) {
const user = await getUserById(req.params.id);
diff --git a/src/api/routes/budgetRoutes.js b/src/api/routes/budgetRoutes.js
index a808f58..d7ebde4 100644
--- a/src/api/routes/budgetRoutes.js
+++ b/src/api/routes/budgetRoutes.js
@@ -4,23 +4,31 @@ import {
validateAuth
} from '#api/middlewares/index.js';
import { UserType } from '#db/schemas/index.js';
-import { RouteDescription, RouteMethod } from '#api/RouteDescription.js';
-import {getUserById} from "#db/dbAccess/index.js";
+import {
+ RouteDescription,
+ RouteMethod,
+ RouteMethodList
+} from '#api/RouteDescription.js';
+import { getUserById } from '#db/dbAccess/index.js';
/**
* @type {RouteDescription}
*/
export const getBudgetByUserRoute = {
path: '/budget/:id',
- methods: {
+ methods: new RouteMethodList({
get: new RouteMethod({
middlewares: [requireMonitor],
async method(req, res) {
- if (!req.)
- const user = await getUserById(req.);
+ if (req.user.type !== UserType.ADMIN) {
+ if (!req.user.monitoredUsers.includes(req.params.id))
+ throw new Error('meow');
+ }
+ //if (!req.)
+ // const user = await getUserById(req.);
}
})
- }
+ })
};
/**
@@ -44,7 +52,9 @@ export const getBudgetRoute = {
methods: {
get: new RouteMethod({
middlewares: [requireUser],
- async method(req, res) {}
+ async method(req, res) {
+ res.send({ currentBalance: req.user.balance });
+ }
})
}
};
diff --git a/src/api/routes/indexRoute.js b/src/api/routes/indexRoute.js
index b6fe28e..0c15b73 100644
--- a/src/api/routes/indexRoute.js
+++ b/src/api/routes/indexRoute.js
@@ -7,8 +7,11 @@ export const indexRoute = {
path: '/',
methods: {
get: new RouteMethod({
+ description: 'Get the index page (empty)',
method(req, res) {
- res.send('What art thou doing here???');
+ res.send(
+ "Welcome to SafeNSound! If you're confused, please visit the app instead!"
+ );
}
})
}
diff --git a/src/api/routes/statusRoute.js b/src/api/routes/statusRoute.js
index 1dbca45..2c111a8 100644
--- a/src/api/routes/statusRoute.js
+++ b/src/api/routes/statusRoute.js
@@ -8,6 +8,7 @@ export const statusRoute = {
path: '/status',
methods: {
get: new RouteMethod({
+ description: 'Get the server status',
async method(req, res) {
const status = {
status: 'ok',
|