Skip to content
Snippets Groups Projects
Commit 3f990a1c authored by Martin Immanuel Burgos's avatar Martin Immanuel Burgos
Browse files

Issue: Backend support for user object (#7)

parent 200bf5be
No related branches found
No related tags found
1 merge request!6Resolve "Backend: Profil entitet"
import { Response, Request } from "express";
import query from '../../services/db_query';
import express from 'express';
import IUser from '../../models/user';
const router = express.Router();
/* ============================= CREATE ============================= */
// Get all users `/api/user/`
router.route('/').post(async (request: Request, response: Response) => {
const {username, email, password, create_time} = request.body;
try {
const user: IUser = {
"username": username,
"email": email,
"password": password,
};
if (Object.values(user).filter(p => p == undefined).length > 0) return response.status(500).send("Error");
const input = (`INSERT INTO user(username, email, password) VALUES (?,?,?)`)
return response.status(200).json(
await query(input,Object.values(user))
);
} catch (error) {
return response.status(400).send("Bad Request");
}
});
/* ============================= READ ============================= */
// Get all users `/api/user/`
router.route('/').get(async (_: Request, response: Response) => {
try {
const input = "SELECT * FROM user;"
response.status(200).json(await query(input,""));
} catch (error) {
response.status(400).send("Bad Request");
}
});
// Get post with id `/api/user/:id`
router.route('/:userId').get(async (request: Request, response: Response) => {
const userId = request.params.userId;
try {
const input = `SELECT * FROM user WHERE userId=?;`
response.status(200).json(await query(input,[userId]));
} catch (error) {
response.status(400).send("Bad Request");
}
});
/* ============================= UPDATE ============================= */
// Update user from id `/api/user/:id`
router.route('/:userId').put(async (request: Request, response: Response) => {
const userId = request.params.userId;
const {username, email, password} = request.body;
try {
const input = `UPDATE user SET username=?, email=?, password=? WHERE userId=?);`;
response.status(200).json(await query(input,[username, email, password, userId]));
} catch (error) {
response.status(400).send("Bad Request");
}
});
/* ============================= DELETE ============================= */
// Delete user from id `/api/user/:id`
router.route('/:userId').delete(async (request: Request, response: Response) => {
const userId = request.params.userId;
try {
const input = `DELETE FROM user WHERE (userId=?);`;
response.status(200).json(await query(input,[userId]));
} catch (error) {
response.status(400).send("Bad Request");
}
});
export default router;
......@@ -9,4 +9,4 @@ interface IPost {
}
// Eksporterer IPost til bruk i andre filer.
export default IPost;
\ No newline at end of file
export default IPost;
// Interface for the User object, taken from the database
interface IUser{
userId?: number;
username: string;
email: string;
password: string;
create_time?: Date;
}
export default IUser;
import postController from '../controllers/postcontroller';
import categoryController from '../controllers/categoryController';
import userController from '../controllers/userController';
import express from 'express';
const router = express.Router();
......@@ -7,6 +8,6 @@ const router = express.Router();
// Endpoints
router.use("/post", postController);
router.use("/category", categoryController);
router.use("/user", userController);
export default router;
export default router;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment