[JITERA] Implement Reader Management System
Created by: chi-jitera
Overview
This pull request introduces a new feature for managing readers in the book management system. It includes the creation of a Reader model, service, controller, and routes to handle CRUD operations for readers.
Changes
-
Model:
- Created
models/Reader.jsto define theReaderschema with fields such asname,email,membershipDate, andisActive.
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 }, isActive: { type: Boolean, default: true } }); module.exports = mongoose.model('Reader', readerSchema); - Created
-
Service:
- Implemented business logic in
services/readerService.jsto handle reader creation, retrieval, updating, and deletion.
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 business logic in
-
Controller:
- Created
controllers/readerController.jsto handle HTTP requests related to readers.
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
-
Routes:
- Defined API endpoints in
routes/readerRoutes.jsfor managing readers.
const express = require('express'); const router = express.Router(); const readerController = require('../controllers/readerController'); 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 API endpoints in
These components will allow for efficient management of readers in the system, similar to the existing book management functionality.