Files
miriamgemeinde/controllers/worshipController.js
2024-06-17 23:34:31 +02:00

85 lines
2.3 KiB
JavaScript

const { Worship, EventPlace, Sequelize } = require('../models');
const { Op } = require('sequelize'); // Importieren Sie die Operatoren von Sequelize
exports.getAllWorships = async (req, res) => {
try {
const worships = await Worship.findAll();
res.status(200).json(worships);
} catch (error) {
res.status(500).json({ message: 'Fehler beim Abrufen der Gottesdienste' });
}
};
exports.createWorship = async (req, res) => {
try {
const worship = await Worship.create(req.body);
res.status(201).json(worship);
} catch (error) {
console.log(error);
res.status(500).json({ message: 'Fehler beim Erstellen des Gottesdienstes' });
}
};
exports.updateWorship = async (req, res) => {
try {
const worship = await Worship.findByPk(req.params.id);
if (worship) {
await worship.update(req.body);
res.status(200).json(worship);
} else {
res.status(404).json({ message: 'Gottesdienst nicht gefunden' });
}
} catch (error) {
res.status(500).json({ message: 'Fehler beim Aktualisieren des Gottesdienstes' });
}
};
exports.deleteWorship = async (req, res) => {
try {
const worship = await Worship.findByPk(req.params.id);
if (worship) {
await worship.destroy();
res.status(200).json({ message: 'Gottesdienst erfolgreich gelöscht' });
} else {
res.status(404).json({ message: 'Gottesdienst nicht gefunden' });
}
} catch (error) {
res.status(500).json({ message: 'Fehler beim Löschen des Gottesdienstes' });
}
};
exports.getFilteredWorships = async (req, res) => {
const { location, orderBy } = req.query;
const where = {};
if (location && location !== '-1') {
if (location.includes('|')) {
const locationsArray = location.split('|');
where.eventPlaceId = {
[Sequelize.Op.in]: locationsArray
}
} else {
where.eventPlaceId = location;
}
}
where.date = {
[Op.gte]: new Date(), // Only include events from today onwards
};
try {
const worships = await Worship.findAll({
where,
include: {
model: EventPlace,
as: 'eventPlace',
},
order: [orderBy.split(' ')],
});
res.status(200).json(worships);
} catch (error) {
console.log(error);
res.status(500).json({ message: 'Fehler beim Abrufen der gefilterten Gottesdienste' });
}
};