Files
forum-backend/routes/user.js
T
2024-01-23 22:28:46 +01:00

49 lines
1.7 KiB
JavaScript

const db = require('../surreal');
const router = require('express').Router();
const middleware = require('../auth/middleware');
router.get('/:username', async (req, res) => {
try{
const username = req.params.username;
if(!username) return res.status(400).json({error: "Missing username"});
const user = await db.query(`SELECT description, creation FROM users WHERE username = string::lowercase("${username}")`);
if(user.length == 0) return res.status(400).json({error: "User does not exist"});
const posts = await db.query(`SELECT * FROM posts WHERE author = string::lowercase("${username}")`);
const returnData = {
description: user[0].description,
creation: user[0].creation,
posts: posts
}
res.status(200).json({returnData});
}
catch(err){
console.log(err);
res.status(500).json({error: "Internal server error"});
}
});
router.put('/description', middleware, async (req, res) => {
try{
const username = req.user;
const {description} = req.body;
if(!username) return res.status(400).json({error: "Missing username"});
if(!description) return res.status(400).json({error: "Missing description"});
if(description.length > process.env.MAXDESCRIPTIONLENGTH) return res.status(400).json({error: "Description is too long"});
const update = await db.query(`UPDATE users SET description = "${description}" WHERE username = string::lowercase("${username}")`);
res.status(200).json({message: "Description updated"});
}
catch(err){
console.log(err);
res.status(500).json({error: "Internal server error"});
}
});
module.exports = router;