tanzania-universities-api
Version:
A comprehensive REST API for Tanzanian universities data
82 lines (70 loc) • 2.28 kB
JavaScript
/**
* @swagger
* components:
* schemas:
* University:
* type: object
* required:
* - name
* - location
* properties:
* id:
* type: string
* description: The auto-generated id of the university
* name:
* type: string
* description: The name of the university
* location:
* type: string
* description: The city where the university is located
* courses:
* type: array
* items:
* type: string
* description: Available courses
* established:
* type: integer
* description: Year the university was established
* website:
* type: string
* format: url
* description: University website URL
* example:
* id: 001
* name: University of Dar es Salaam
* location: Dar es Salaam
* courses: ["Medicine", "Engineering", "Law"]
* established: 1961
* website: https://www.udsm.ac.tz
* securitySchemes:
* bearerAuth:
* type: http
* scheme: bearer
* bearerFormat: JWT
*/
const express = require("express");
const apicache = require("apicache");
const universityController = require("../../controllers/universityController");
const authenticateJWT = require("../../middleware/authMiddleware");
const router = express.Router();
const cache = apicache.middleware;
router.get("/", cache("2 minutes"), universityController.getAllUniversities);
router.get("/by-location", universityController.getUniversitiesByLocation);
router.get("/by-course", universityController.getUniversitiesByCourse);
router.get(
"/by-name/:universityName",
universityController.getUniversityByName
);
router.get("/:universityId", universityController.getOneUniversity);
router.post("/", authenticateJWT, universityController.createNewUniversity);
router.patch(
"/:universityId",
authenticateJWT,
universityController.updateOneUniversity
);
router.delete(
"/:universityId",
authenticateJWT,
universityController.deleteOneUniversity
);
module.exports = router;