138 lines
4.2 KiB
JavaScript
138 lines
4.2 KiB
JavaScript
const { splitSite } = require("../middlewares");
|
|
const db = require("../models");
|
|
const CalendarEventRecur = db.calendar_event_recur;
|
|
|
|
// Create a new Recurring Event Rule
|
|
exports.create = (req, res) => {
|
|
if (!req.body.rrule || !req.body.start_repeat_date) {
|
|
res.status(400).send({ message: "rrule and start_repeat_date are required!" });
|
|
return;
|
|
}
|
|
const site = splitSite.findSiteNumber(req);
|
|
const recur = new CalendarEventRecur({
|
|
title: req.body.title,
|
|
type: req.body.type,
|
|
description: req.body.description,
|
|
color: req.body.color,
|
|
status: req.body.status || 'active',
|
|
target_type: req.body.target_type,
|
|
target_uuid: req.body.target_uuid,
|
|
target_name: req.body.target_name,
|
|
event_location: req.body.event_location,
|
|
event_reminder_type: req.body.event_reminder_type,
|
|
meal_type: req.body.meal_type,
|
|
activity_category: req.body.activity_category,
|
|
ingredients: req.body.ingredients,
|
|
rrule: req.body.rrule,
|
|
start_repeat_date: req.body.start_repeat_date,
|
|
end_repeat_date: req.body.end_repeat_date,
|
|
indefinite_repeat: req.body.indefinite_repeat || false,
|
|
create_by: req.body.create_by,
|
|
create_date: req.body.create_date,
|
|
edit_by: req.body.edit_by,
|
|
edit_date: req.body.edit_date,
|
|
edit_history: req.body.edit_history,
|
|
site
|
|
});
|
|
recur
|
|
.save(recur)
|
|
.then(data => {
|
|
res.send(data);
|
|
})
|
|
.catch(err => {
|
|
res.status(500).send({
|
|
message: err.message || "Some error occurred while creating the Recurring Event Rule."
|
|
});
|
|
});
|
|
};
|
|
|
|
// Get all active recurring event rules
|
|
exports.getAll = (req, res) => {
|
|
var condition = { status: 'active' };
|
|
condition = splitSite.splitSiteGet(req, condition);
|
|
CalendarEventRecur.find(condition)
|
|
.then(data => {
|
|
res.send(data);
|
|
})
|
|
.catch(err => {
|
|
res.status(500).send({
|
|
message: err.message || "Some error occurred while retrieving Recurring Event Rules."
|
|
});
|
|
});
|
|
};
|
|
|
|
// Get one by ID
|
|
exports.getOne = (req, res) => {
|
|
const id = req.params.id;
|
|
CalendarEventRecur.findById(id)
|
|
.then(data => {
|
|
if (!data)
|
|
res.status(404).send({ message: "Not found Recurring Event Rule with id " + id });
|
|
else res.send(data);
|
|
})
|
|
.catch(err => {
|
|
res.status(500).send({ message: "Error retrieving Recurring Event Rule with id=" + id });
|
|
});
|
|
};
|
|
|
|
// Update by ID
|
|
exports.update = (req, res) => {
|
|
if (!req.body) {
|
|
return res.status(400).send({ message: "Data to update can not be empty!" });
|
|
}
|
|
const id = req.params.id;
|
|
CalendarEventRecur.findByIdAndUpdate(id, req.body, { useFindAndModify: false })
|
|
.then(data => {
|
|
if (!data) {
|
|
res.status(404).send({
|
|
message: `Cannot update Recurring Event Rule with id=${id}. Maybe it was not found!`
|
|
});
|
|
} else res.send({ success: true, message: "Recurring Event Rule was updated successfully." });
|
|
})
|
|
.catch(err => {
|
|
res.status(500).send({
|
|
success: false,
|
|
message: "Error updating Recurring Event Rule with id=" + id
|
|
});
|
|
});
|
|
};
|
|
|
|
// Disable (set status to inactive)
|
|
exports.disable = (req, res) => {
|
|
const id = req.params.id;
|
|
CalendarEventRecur.findByIdAndUpdate(id, { ...req.body, status: 'inactive' }, { useFindAndModify: false })
|
|
.then(data => {
|
|
if (!data) {
|
|
res.status(404).send({
|
|
message: `Cannot disable Recurring Event Rule with id=${id}. Maybe it was not found!`
|
|
});
|
|
} else res.send({ success: true, message: "Recurring Event Rule was disabled successfully." });
|
|
})
|
|
.catch(err => {
|
|
res.status(500).send({
|
|
success: false,
|
|
message: "Error disabling Recurring Event Rule with id=" + id
|
|
});
|
|
});
|
|
};
|
|
|
|
// Delete by ID
|
|
exports.delete = (req, res) => {
|
|
const id = req.params.id;
|
|
CalendarEventRecur.findByIdAndRemove(id)
|
|
.then(data => {
|
|
if (!data) {
|
|
res.status(404).send({
|
|
message: `Cannot delete Recurring Event Rule with id=${id}. Maybe it was not found!`
|
|
});
|
|
} else {
|
|
res.send({ message: "Recurring Event Rule was deleted successfully!" });
|
|
}
|
|
})
|
|
.catch(err => {
|
|
res.status(500).send({
|
|
message: "Could not delete Recurring Event Rule with id=" + id
|
|
});
|
|
});
|
|
};
|