Wolkendama-API / Controller / blogController.js
blogController.js
Raw
const Blog = require("../Model/blogModel");
const AppError = require("../utils/appError");
const catchAsync = require("../utils/catchAsync");

exports.createBlogItem = catchAsync(async (req, res, next) => {
  const blogItem = await Blog.create({
    title: req.body.title,
    description: req.body.description,
    videoLink: req.body.videoLink,
  });

  res.status(201).json({ status: "success", data: blogItem });
});

exports.getAllBlogItem = catchAsync(async (req, res, next) => {
  let data = await Blog.find();
  res.status(201).json({
    status: "success",
    data,
  });
});

exports.getOneBlogItem = catchAsync(async (req, res, next) => {
  const data = await Blog.findById(req.params.id).populate("review");

  res.status(201).json({
    status: "success",
    data,
  });
});

exports.changeOneBlogItem = catchAsync(async (req, res, next) => {
  let amendedData = {};

  amendedData.title = req.body.title;
  amendedData.description = req.body.description;
  amendedData.videoLink = req.body.videoLink;

  const data = await Blog.findByIdAndUpdate(req.params.id, amendedData, {
    new: true,
    runValidators: true,
  });

  res.status(201).json({
    status: "success",
    data,
  });
});

exports.deleteOneBlogItem = catchAsync(async (req, res, next) => {
  await Blog.findByIdAndDelete(req.params.id);

  res.status(201).json({
    status: "success",
    data: null,
  });
});