const express = require("express"); const router = express.Router(); const pool = require("../../db"); const { strictInput } = require("../../middleware/strict_input"); const { authenticateToken } = require("../../middleware/authenticate_token"); const { removeImageLink } = require("../../middleware/post_upload"); const { deletePostNode } = require("./post_graph"); async function delete_post(req, res) { try { const id = req.query.id; const result = await pool.query( "UPDATE posts SET active = false WHERE id = $1 AND author_id = $2 RETURNING id, image_link", [id, req.user.id], ); if (result.rowCount === 0) { return res.status(404).send("Post not found or does not belong to you"); } await removeImageLink(result.rows[0].image_link); await deletePostNode(result.rows[0].id); res.status(200).json({ message: "Post Deleted", }); } catch (err) { console.error("database query failed", { message: err.message, code: err.code, detail: err.detail, hint: err.hint, stack: err.stack, }); res.status(500).send("Data has not been deleted, request failed"); } } router.delete( "/", authenticateToken, strictInput({ query: ["id"] }), delete_post, ); module.exports = router;