MERN

⌘K
  1. Home
  2. Docs
  3. MERN
  4. Reservation এর ফিচার বানাই

Reservation এর ফিচার বানাই

Update models.js

  const reservationSchema = new mongoose.Schema({
    book: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Book',
      required: true,
    },
    member: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Member',
      required: true,
    },
    reservationDate: {
      type: Date,
      default: Date.now,
    },
    status: {
      type: String,
      default: 'pending',
    },
  });
  
  const Reservation = mongoose.model('Reservation', reservationSchema);

module.exports = { Author, Book ,Member,Loan,Stockbook,Reservation};

// routes.js
const { Author, Book,Member,Loan,Stockbook,Reservation } = require('./models');
// Create a new reservation
router.post('/reservations', async (req, res) => {
  try {
    const { book, member, reservationDate, status } = req.body;
    const reservation = new Reservation({ book, member, reservationDate, status });
    const savedReservation = await reservation.save();
    res.json(savedReservation);
  } catch (err) {
    console.error(err);
    res.status(500).json({ error: 'Failed to create reservation' });
  }
});

// Get all reservations
router.get('/reservations', async (req, res) => {
  try {
    const reservations = await Reservation.find();
    res.json(reservations);
  } catch (err) {
    console.error(err);
    res.status(500).json({ error: 'Failed to retrieve reservations' });
  }
});


// Get a reservation by ID
router.get('/reservations/:id', async (req, res) => {
  try {
    const reservationId = req.params.id;
    const reservation = await Reservation.findById(reservationId);

    if (!reservation) {
      return res.status(404).json({ error: 'Reservation not found' });
    }

    res.json(reservation);
  } catch (err) {
    console.error(err);
    res.status(500).json({ error: 'Failed to find reservation' });
  }
});

// Update a reservation by ID
router.put('/reservations/:id', async (req, res) => {
  try {
    const reservationId = req.params.id;
    const { status } = req.body;

    const updatedReservation = await Reservation.findByIdAndUpdate(
      reservationId,
      { status },
      { new: true }
    );

    if (!updatedReservation) {
      return res.status(404).json({ error: 'Reservation not found' });
    }

    res.json(updatedReservation);
  } catch (err) {
    console.error(err);
    res.status(500).json({ error: 'Failed to update reservation' });
  }
});

// Delete a reservation by ID
router.delete('/reservations/:id', async (req, res) => {
  try {
    const reservationId = req.params.id;

    const deletedReservation = await Reservation.findByIdAndDelete(reservationId);

    if (!deletedReservation) {
      return res.status(404).json({ error: 'Reservation not found' });
    }

    res.json({ message: 'Reservation canceled successfully' });
  } catch (err) {
    console.error(err);
    res.status(500).json({ error: 'Failed to cancel reservation' });
  }
});

How can we help?