Files
tattletires/api/controllers/postsController.js

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