[JITERA] Implement Reader Feature
Created by: chi-jitera
Overview
This pull request introduces a new "reader" feature to the project, allowing for the management of readers through a dedicated model, service, controller, and routes.
Changes
-
Reader Model:
- Created a
Readermodel inmodels/Reader.jsto represent readers in the database. This model includes fields forname,email, andmembershipDate.
const mongoose = require('../config/db'); const readerSchema = new mongoose.Schema({ name: { type: String, required: true }, email: { type: String, required: true, unique: true }, membershipDate: { type: Date, default: Date.now } }); module.exports = mongoose.model('Reader', readerSchema); - Created a
-
Reader Service:
- Implemented a service in
services/readerService.jsto handle business logic related to readers, including functions to create, retrieve, update, and delete readers.
const Reader = require('../models/Reader'); exports.createReader = async (readerData) => { /*...*/ }; exports.getAllReaders = async () => { /*...*/ }; exports.getReaderById = async (readerId) => { /*...*/ }; exports.updateReader = async (readerId, updateData) => { /*...*/ }; exports.deleteReader = async (readerId) => { /*...*/ }; - Implemented a service in
-
Reader Controller:
- Created a controller in
controllers/readerController.jsto handle HTTP requests for reader operations, utilizing the service functions.
const readerService = require('../services/readerService'); exports.createReader = async (req, res) => { /*...*/ }; exports.getAllReaders = async (req, res) => { /*...*/ }; exports.getReaderById = async (req, res) => { /*...*/ }; exports.updateReader = async (req, res) => { /*...*/ }; exports.deleteReader = async (req, res) => { /*...*/ }; - Created a controller in
-
Reader Routes:
- Defined routes in
routes/readerRoutes.jsto expose endpoints for reader operations, including creating, retrieving, updating, and deleting readers.
const express = require('express'); const readerController = require('../controllers/readerController'); const router = express.Router(); router.post('/readers', readerController.createReader); router.get('/readers', readerController.getAllReaders); router.get('/readers/:id', readerController.getReaderById); router.put('/readers/:id', readerController.updateReader); router.delete('/readers/:id', readerController.deleteReader); module.exports = router; - Defined routes in
Integration
- Ensure to integrate the new
readerRoutesin the main server file (e.g.,server.js) to make these endpoints accessible.