postCtrl.js
Wed Nov 03 2021 13:19:51 GMT+0000 (Coordinated Universal Time)
Saved by @devdave
// [=>] IMPORT SECT. // - // User model const { User, Post, Comment, Like } = require("../config/database"); // File system const fs = require("fs"); // dotEnv variables const dotEnv = require("dotenv").config({ path: "./config/.env" }); // [=>] DISPLAY [ALL] Posts // - exports.findAll = async function (req, res, next) { try { console.log("=> findAll function"); const posts = await Post.findAll({ order: [["createdAt", "DESC"]], include: [ { model: User }, { model: Comment, include: [{ model: User }] }, { model: Like }, ], }); res.status(200).json(posts); } catch (error) { res.status(500).json({ message: error.message }); } }; // [=>] DISPLAY [ONE] Post // - exports.findOne = async function (req, res, next) { try { console.log("=> findOne function"); let id = req.params.id; const post = await Post.findByPk(id, { include: [{ model: Like }], }); res.status(200).json(post); } catch (error) { res.status(500).json({ message: error.message }); } }; // [=>] DISPLAY [user] Post // - exports.findByUser = async function (req, res, next) { console.log("=> findByUser function"); try { const posts = await Post.findAll({ where: { UserId: req.params.id }, order: [["createdAt", "DESC"]], include: [ { model: User }, { model: Comment, include: [{ model: User }] }, { model: Like }, ], }); res.status(200).json(posts); } catch (error) { res.status(500).json({ message: error.message }); } }; exports.createOne = async function (req, res, next) { console.log("=> Create Post Function"); let postObject = req.body; if (req.file) { postObject = JSON.parse(req.body.post); postObject.imageUrl = `${req.protocol}://${req.get("host")}/images/${ req.file.filename }`; } try { let post = await Post.create({ ...postObject, userId: req.user.id, }); post = await Post.findOne({ where: { id: post.id }, include: [{ model: User }], }); res.status(201).json({ post }); } catch (error) { res.status(500).json({ message: error.message }); } }; // [=>] UPDATE Post // - exports.updateOne = async function (req, res, next) { console.log("=> UPDATE POST Function"); try { const post = await Post.findByPk(req.params.id); post.content = req.body.content; post.imageUrl = req.body.imageUrl; await post.save(); res.status(200).json(post); } catch (error) { res.status(500).json({ message: error.message }); } }; // [=>] DELETE Post // - exports.deleteOne = async function (req, res, next) { console.log("=> DELETE POST Function"); try { const post = await Post.findByPk(req.params.id); post.destroy(); res.status(200).end(); } catch (error) { res.status(500).json({ message: error.message }); } };
Comments