From daaec59b7cec54ac15cb202252133afb69b49c71 Mon Sep 17 00:00:00 2001 From: rj-rishav Date: Mon, 27 Jan 2025 23:22:43 +0530 Subject: [PATCH] Added: event and coach routes and controllers --- backend/controllers/Coach.controller.js | 55 +++++++++++++++++++++++ backend/controllers/Event.controller.js | 58 +++++++++++++++++++++++++ backend/index.js | 15 ++++++- backend/package-lock.json | 1 - backend/package.json | 1 - backend/routes/Coach.route.js | 17 ++++++++ backend/routes/Event.route.js | 17 ++++++++ backend/routes/HeroImage.route.js | 7 +++ 8 files changed, 168 insertions(+), 3 deletions(-) diff --git a/backend/controllers/Coach.controller.js b/backend/controllers/Coach.controller.js index e69de29..6d5bf4c 100644 --- a/backend/controllers/Coach.controller.js +++ b/backend/controllers/Coach.controller.js @@ -0,0 +1,55 @@ +import { PrismaClient } from "@prisma/client"; + +const prisma = new PrismaClient(); + +export const getCoaches = async (req, res) => { + try { + const coaches = await prisma.coach.findMany(); + res.status(200).json({ status: 200, data: coaches }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +export const createCoach = async (req, res) => { + try { + const newEvent = await prisma.coach.create({ + data: { + ...req?.body, + }, + }); + res.status(201).json({ status: 201, data: newEvent }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +export const updateCoach = async (req, res) => { + const { id } = req.params; + try { + const updatedEvent = await prisma.coach.update({ + where: { id: id }, + data: { + ...req?.body, + }, + }); + res.status(200).json({ status: 200, data: updatedEvent }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +export const deleteCoach = async (req, res) => { + const { id } = req.params; + try { + await prisma.coach.delete({ + where: { id: id }, + }); + res.status(200).json({ + status: 200, + message: "Event deleted successfully", + }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; diff --git a/backend/controllers/Event.controller.js b/backend/controllers/Event.controller.js index e69de29..52b76f7 100644 --- a/backend/controllers/Event.controller.js +++ b/backend/controllers/Event.controller.js @@ -0,0 +1,58 @@ +import { PrismaClient } from "@prisma/client"; + +const prisma = new PrismaClient(); + +export const getEvents = async (req, res) => { + try { + const events = await prisma.events.findMany(); + res.status(200).json({ status: 200, data: events }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +export const createEvent = async (req, res) => { + const { title, description, date } = req.body; + try { + const newEvent = await prisma.events.create({ + data: { + title, + description, + date, + }, + }); + res.status(201).json({ status: 201, data: newEvent }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +export const updateEvent = async (req, res) => { + const { id } = req.params; + try { + const updatedEvent = await prisma.events.update({ + where: { id: id }, + data: { + ...req?.body, + }, + }); + res.status(200).json({ status: 200, data: updatedEvent }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +export const deleteEvent = async (req, res) => { + const { id } = req.params; + try { + await prisma.events.delete({ + where: { id: id }, + }); + res.status(200).json({ + status: 200, + message: "Event deleted successfully", + }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; diff --git a/backend/index.js b/backend/index.js index da861d4..9ca3087 100644 --- a/backend/index.js +++ b/backend/index.js @@ -1,14 +1,27 @@ config(); import { config } from "dotenv"; import express from "express"; +import cors from "cors"; + +import EventRouter from "./routes/Event.route.js"; +import CoachRouter from "./routes/Coach.route.js"; +import HeroImageRouter from "./routes/HeroImage.route.js"; const PORT = process.env.PORT; const app = express(); +app.use(express.json()); +app.use(express.urlencoded({ extended: true })); +app.use(cors()); + // Test endpoint -app.get("/", (req, res) => +app.get("/api", (req, res) => res.status(200).json({ message: "API is working!" }) ); +app.use("/api/coach", CoachRouter); +app.use("/api/event", EventRouter); +app.use("/api/hero-image", HeroImageRouter); + app.listen(PORT, () => console.log(`Server started on port = ${PORT}`)); diff --git a/backend/package-lock.json b/backend/package-lock.json index 60fc827..60eb9e5 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -9,7 +9,6 @@ "version": "1.0.0", "dependencies": { "@prisma/client": "^6.2.1", - "body-parser": "^1.20.3", "cors": "^2.8.5", "dotenv": "^16.4.7", "express": "^4.21.2", diff --git a/backend/package.json b/backend/package.json index 57ce59b..f518a5a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -7,7 +7,6 @@ }, "dependencies": { "@prisma/client": "^6.2.1", - "body-parser": "^1.20.3", "cors": "^2.8.5", "dotenv": "^16.4.7", "express": "^4.21.2", diff --git a/backend/routes/Coach.route.js b/backend/routes/Coach.route.js index e69de29..7a6a12e 100644 --- a/backend/routes/Coach.route.js +++ b/backend/routes/Coach.route.js @@ -0,0 +1,17 @@ +import express from "express"; + +import { + getCoaches, + createCoach, + updateCoach, + deleteCoach, +} from "../controllers/Coach.controller.js"; + +const CoachRouter = express.Router(); + +CoachRouter.get("/", getCoaches) + .post("/", createCoach) + .put("/:id", updateCoach) + .delete("/:id", deleteCoach); + +export default CoachRouter; diff --git a/backend/routes/Event.route.js b/backend/routes/Event.route.js index e69de29..07923e2 100644 --- a/backend/routes/Event.route.js +++ b/backend/routes/Event.route.js @@ -0,0 +1,17 @@ +import express from "express"; + +import { + getEvents, + createEvent, + updateEvent, + deleteEvent, +} from "../controllers/Event.controller.js"; + +const EventRouter = express.Router(); + +EventRouter.get("/", getEvents) + .post("/", createEvent) + .put("/:id", updateEvent) + .delete("/:id", deleteEvent); + +export default EventRouter; diff --git a/backend/routes/HeroImage.route.js b/backend/routes/HeroImage.route.js index e69de29..206ccff 100644 --- a/backend/routes/HeroImage.route.js +++ b/backend/routes/HeroImage.route.js @@ -0,0 +1,7 @@ +import express from "express"; + +const HeroImageRouter = express.Router(); + +HeroImageRouter.get("/"); + +export default HeroImageRouter;