import AWSUtil from '../bin/aws.js' import Post from '../models/postModel.js' export const getAllPosts = async (req, res, next) => { const allPosts = await Post.find({}).exec() res.status(200).json({ status: 'success', data: allPosts }) } export const getPost = async (req, res, next) => { const post = await Post.findById(req.params.id).exec() if (!post) { return next('No document found with that id', 404) } res.status(200).json({ status: 'success', data: post }) } export const getAllPostsByUser = async (req, res, next) => { const post = await Post.find({ email: req.params.user }).exec() if (!post) { return next('No document found with that id', 404) } res.status(200).json({ status: 'success', data: post }) } export const createPost = async (req, res, next) => { const aws = new AWSUtil() // Grab base64 photo from the req body const location = await aws.uploadFile(req.body.photo) const payload = { ...req.body, photo: location } Post.create(payload).then((result) => { res.status(200).json({ status: 'success', data: result }) }) } export const updatePost = async (req, res, next) => { Post.updateOne({ _id: req.params.id }, { $set: req.body }).then((result) => { res.status(200).json({ status: 'success', data: result }) }) } export const deletePost = async (req, res, next) => { Post.deleteOne({ _id: req.params.id }).then((result) => { res.status(200).json({ status: 'success', data: result }) }) }