70 lines
1.7 KiB
JavaScript
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
|
|
});
|
|
});
|
|
} |