49 lines
1.7 KiB
JavaScript
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; |