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;