From 85158482ad9b3c05317e91a2f941de89f8451a34 Mon Sep 17 00:00:00 2001 From: Kunwar Nir Date: Tue, 21 Nov 2023 18:31:53 -0500 Subject: [PATCH] searching routes --- backend/controllers/courseController.js | 28 +++++++++++++++++++------ backend/package.json | 1 + backend/routes/courses.js | 3 ++- carleton-pathways/package.json | 1 + 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/backend/controllers/courseController.js b/backend/controllers/courseController.js index 602f381..910a829 100644 --- a/backend/controllers/courseController.js +++ b/backend/controllers/courseController.js @@ -1,3 +1,4 @@ +const { response } = require("express"); const Course = require("../model/courseModel"); const mongoose = require("mongoose"); @@ -18,6 +19,26 @@ const showCourse = async (req, res) => { }); }; +//get course by name +const courseByName = async (req, res) => { + const { id } = req.params; + console.log("getting course from ID: ", id); + + const course = await Course.find({faculty: id.substring(0,4), course_code: id.substring(4,8)}).exec() + + + if (!course) { + return res.status(404).json({ error: "No such Course" }); + } + if(course.length === 0){ + return res.status(404).json({ error: "No such Course" }); + } + res.status(200).json({ + course + }); + console.log(course) +}; + //Gets all Courses const indexCourse = async (req, res) => { console.log("Getting all courses") @@ -118,7 +139,6 @@ const deleteCourse = async(req,res) =>{ } - const updateCourse = async (req,res) => { try{ const {id} = req.params @@ -139,10 +159,6 @@ const updateCourse = async (req,res) => { //Error can be caused by req.body not following the Schema return res.status(500).json({ message: "Error Updating course" }); } - - } - - -module.exports = { showCourse, indexCourse,createCourse,deleteCourse,updateCourse }; +module.exports = { courseByName, showCourse, indexCourse,createCourse,deleteCourse,updateCourse }; \ No newline at end of file diff --git a/backend/package.json b/backend/package.json index 918e832..3a919b2 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,4 +1,5 @@ { + "proxy":"http://localhost:4000", "name": "backend", "version": "1.0.0", "description": "", diff --git a/backend/routes/courses.js b/backend/routes/courses.js index f5ea077..f73e81a 100644 --- a/backend/routes/courses.js +++ b/backend/routes/courses.js @@ -1,8 +1,9 @@ const express = require("express"); const router = express.Router(); -const { showCourse, indexCourse,createCourse,deleteCourse,updateCourse } = require("../controllers/courseController"); +const { showCourse, indexCourse,createCourse,deleteCourse,updateCourse, courseByName } = require("../controllers/courseController"); //get specified course +router.get("/course/:id", courseByName) router.get("/:id", showCourse); router.get("/", indexCourse); router.post("",createCourse) diff --git a/carleton-pathways/package.json b/carleton-pathways/package.json index 893667d..7e9b809 100644 --- a/carleton-pathways/package.json +++ b/carleton-pathways/package.json @@ -1,4 +1,5 @@ { + "proxy":"http://localhost:4000", "name": "carleton-pathways", "version": "0.1.0", "private": true,