Files
tattletires/api/controllers/postsController.js
2025-07-26 16:41:38 -05:00

70 lines
1.7 KiB
JavaScript

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
});
});
}