31 lines
No EOL
1.2 KiB
JavaScript
31 lines
No EOL
1.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const express_1 = require("express");
|
|
const zod_1 = require("zod");
|
|
const Minute_1 = require("../models/Minute");
|
|
const auth_1 = require("../middleware/auth");
|
|
const upload_1 = require("../middleware/upload");
|
|
const router = (0, express_1.Router)();
|
|
router.get('/', async (_req, res) => {
|
|
const minutes = await Minute_1.Minute.find().sort({ date: -1 });
|
|
res.json(minutes);
|
|
});
|
|
router.post('/', auth_1.requireAuth, upload_1.uploadMinutes.single('file'), async (req, res) => {
|
|
const schema = zod_1.z.object({
|
|
date: zod_1.z.string().min(1),
|
|
meetingType: zod_1.z.string().min(1),
|
|
location: zod_1.z.string().min(1),
|
|
});
|
|
const data = schema.parse(req.body);
|
|
const fileUrl = req.file
|
|
? `/uploads/minutes/${req.file.filename}`
|
|
: zod_1.z.string().min(1).parse(req.body.fileUrl);
|
|
const minute = await Minute_1.Minute.create({ ...data, fileUrl });
|
|
res.status(201).json(minute);
|
|
});
|
|
router.delete('/:id', auth_1.requireAuth, async (req, res) => {
|
|
await Minute_1.Minute.findByIdAndDelete(req.params.id);
|
|
res.status(204).send();
|
|
});
|
|
exports.default = router;
|
|
//# sourceMappingURL=minutes.js.map
|