Add, update and delete attendees to lottery.
This commit is contained in:
		@@ -5,7 +5,7 @@ const allAttendees = (req, res) => {
 | 
			
		||||
  const isAdmin = req.isAuthenticated();
 | 
			
		||||
 | 
			
		||||
  return lotteryRepository
 | 
			
		||||
    .allAttendees(isAdmin === "true")
 | 
			
		||||
    .allAttendees(isAdmin)
 | 
			
		||||
    .then(attendees =>
 | 
			
		||||
      res.send({
 | 
			
		||||
        attendees: attendees,
 | 
			
		||||
@@ -22,16 +22,113 @@ const allAttendees = (req, res) => {
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const deleteAttendees = (req, res) => {
 | 
			
		||||
  return lotteryRepository.deleteAttendees().then(success =>
 | 
			
		||||
    res.send({
 | 
			
		||||
      message: "Removed all attendees",
 | 
			
		||||
      success: success
 | 
			
		||||
const addAttendee = (req, res) => {
 | 
			
		||||
  const { attendee } = req.body;
 | 
			
		||||
 | 
			
		||||
  const requiredColors = [attendee["red"], attendee["blue"], attendee["green"], attendee["yellow"]];
 | 
			
		||||
  const correctColorsTypes = requiredColors.filter(color => typeof color === "number");
 | 
			
		||||
  if (requiredColors.length !== correctColorsTypes.length) {
 | 
			
		||||
    return res.status(400).send({
 | 
			
		||||
      message: "Incorrect or missing color, required type Number for keys: 'blue', 'red', 'green' & 'yellow'.",
 | 
			
		||||
      success: false
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (typeof attendee["name"] !== "string" && typeof attendee["phoneNumber"] !== "number") {
 | 
			
		||||
    return res.status(400).send({
 | 
			
		||||
      message: "Incorrect or missing attendee keys 'name' or 'phoneNumber'.",
 | 
			
		||||
      success: false
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return lotteryRepository
 | 
			
		||||
    .addAttendee(attendee)
 | 
			
		||||
    .then(savedAttendee => {
 | 
			
		||||
      var io = req.app.get("socketio");
 | 
			
		||||
      io.emit("new_attendee", {});
 | 
			
		||||
      return true;
 | 
			
		||||
    })
 | 
			
		||||
  );
 | 
			
		||||
    .then(success =>
 | 
			
		||||
      res.send({
 | 
			
		||||
        message: `Successfully added attendee ${attendee.name} to lottery.`,
 | 
			
		||||
        success: success
 | 
			
		||||
      })
 | 
			
		||||
    );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const updateAttendeeById = (req, res) => {
 | 
			
		||||
  const { id } = req.params;
 | 
			
		||||
  const { attendee } = req.body;
 | 
			
		||||
 | 
			
		||||
  return lotteryRepository
 | 
			
		||||
    .updateAttendeeById(id, attendee)
 | 
			
		||||
    .then(updatedAttendee => {
 | 
			
		||||
      var io = req.app.get("socketio");
 | 
			
		||||
      io.emit("refresh_data", {});
 | 
			
		||||
      return updatedAttendee;
 | 
			
		||||
    })
 | 
			
		||||
    .then(attendee =>
 | 
			
		||||
      res.send({
 | 
			
		||||
        attendee,
 | 
			
		||||
        message: `Updated attendee: ${attendee.name}`,
 | 
			
		||||
        success: true
 | 
			
		||||
      })
 | 
			
		||||
    )
 | 
			
		||||
    .catch(error => {
 | 
			
		||||
      const { statusCode, message } = error;
 | 
			
		||||
 | 
			
		||||
      return res.status(statusCode || 500).send({
 | 
			
		||||
        message: message || "Unexpected error occured while deleteing attendee by id.",
 | 
			
		||||
        success: false
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const deleteAttendeeById = (req, res) => {
 | 
			
		||||
  const { id } = req.params;
 | 
			
		||||
 | 
			
		||||
  return lotteryRepository
 | 
			
		||||
    .deleteAttendeeById(id)
 | 
			
		||||
    .then(removedAttendee => {
 | 
			
		||||
      var io = req.app.get("socketio");
 | 
			
		||||
      io.emit("refresh_data", {});
 | 
			
		||||
      return removedAttendee;
 | 
			
		||||
    })
 | 
			
		||||
    .then(attendee =>
 | 
			
		||||
      res.send({
 | 
			
		||||
        message: `Removed attendee: ${attendee.name}`,
 | 
			
		||||
        success: true
 | 
			
		||||
      })
 | 
			
		||||
    )
 | 
			
		||||
    .catch(error => {
 | 
			
		||||
      const { statusCode, message } = error;
 | 
			
		||||
 | 
			
		||||
      return res.status(statusCode || 500).send({
 | 
			
		||||
        message: message || "Unexpected error occured while deleteing attendee by id.",
 | 
			
		||||
        success: false
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const deleteAttendees = (req, res) => {
 | 
			
		||||
  return lotteryRepository
 | 
			
		||||
    .deleteAttendees()
 | 
			
		||||
    .then(removedAttendee => {
 | 
			
		||||
      var io = req.app.get("socketio");
 | 
			
		||||
      io.emit("refresh_data", {});
 | 
			
		||||
    })
 | 
			
		||||
    .then(_ =>
 | 
			
		||||
      res.send({
 | 
			
		||||
        message: "Removed all attendees",
 | 
			
		||||
        success: true
 | 
			
		||||
      })
 | 
			
		||||
    );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  allAttendees,
 | 
			
		||||
  addAttendee,
 | 
			
		||||
  updateAttendeeById,
 | 
			
		||||
  deleteAttendeeById,
 | 
			
		||||
  deleteAttendees
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user