add Blog Routes and controllers

This commit is contained in:
Raj-varu 2024-03-28 15:42:40 +05:30
parent a65e35aef6
commit 76166c1995
5 changed files with 111 additions and 0 deletions

4
app.js
View File

@ -161,6 +161,8 @@ import SeoRoute from "./resources/SEO&Analytics/SEORouter.js";
//Affiliate Routes
import AffiliateRoute from "./resources/Affiliate&Coupon/Affiliate/AffiliateRoute.js";
//Blog Routes
import BlogRoute from "./resources/Blog/BlogRoute.js";
//Coupon Routes
import CouponRoute from "./resources/Affiliate&Coupon/Coupon/CouponRoute.js";
//short urls
@ -218,6 +220,8 @@ app.use("/api/v1/affiliate", AffiliateRoute);
//Coupons
app.use("/api/v1/coupon", CouponRoute);
//Blog
app.use("/api/v1/blog", BlogRoute);
//config specialty
// app.use("/api/config/specialty", SpecialtiesRouter);
//specialties

View File

@ -0,0 +1,63 @@
import Blog from "./BlogModel.js";
export const createBlog = async (req, res) => {
const { title, tags, image, blog_content } = req.body;
console.log(req.body);
// Checking Fields
if (!title || !tags || !image || !blog_content) {
return res.status(400).json({
success: false,
message: "All fields are mandatory",
});
}
try {
let images = [];
let Allfiles = req.files.image;
console.log(Allfiles);
// if (!Array.isArray(Allfiles)) {
// Allfiles = [Allfiles]; // Convert to array if it's not already
// }
// Allfiles.forEach((file) => {
// if (typeof file.tempFilePath === "string") {
// let filepath = file.tempFilePath;
// images.push(filepath);
// }
// });
// const newBlog = await Blog.create({
// title,
// tags,
// image: images, // Assign the array of image file paths
// blog_content,
// });
res.status(201).json({
success: true,
message: "Blog created successfully",
data: images,
});
} catch (error) {
console.error("Error creating blog:", error);
res.status(500).json({
success: false,
message: error.message ? error.message : "Internal server error",
});
}
};
export const getAllBlog = async (req, res) => {
try {
const saveData = await Blog.find();
res.status(200).json({
success: true,
message: saveData,
});
} catch {
res.status(500).json({
success: false,
message: "Internal server error",
});
}
};

View File

@ -0,0 +1,28 @@
import mongoose from "mongoose";
const { Schema, model } = mongoose;
const blogSchema = new Schema(
{
title: {
type: String,
required: [true, "Title is required"],
},
tags: {
type: [String],
required: [true, "Tags are required"],
},
image: {
type: String,
},
blog_content: {
type: Object,
required: [true, "Content is required"],
},
},
{ timestamps: true }
);
const Blog = model("Blog", blogSchema);
export default Blog;

View File

@ -0,0 +1,11 @@
import express from "express";
import { createBlog, getAllBlog } from "./BlogController.js";
import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js";
const router = express.Router();
router.post("/create", createBlog);
router.get("/getallblog", getAllBlog);
export default router;

View File

@ -0,0 +1,5 @@
[
{
"title": "String0"
}
]