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