finished state and role based auth across the full API
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import { Request, Response } from "express";
|
||||
import { createEvent, getEventAttendance, getEventDetails, getShortEventsInRange, setAttendanceStatus, setEventCancelled, updateEvent } from "../services/calendarService";
|
||||
import { CalendarAttendance, CalendarEvent } from "@app/shared/types/calendar";
|
||||
import { requireLogin } from "../middleware/auth";
|
||||
import { requireLogin, requireMemberState, requireRole } from "../middleware/auth";
|
||||
import { MemberState } from "../services/memberService";
|
||||
|
||||
const express = require('express');
|
||||
const r = express.Router();
|
||||
@@ -36,7 +37,7 @@ r.get('/upcoming', async (req, res) => {
|
||||
res.sendStatus(501);
|
||||
})
|
||||
|
||||
r.post('/:id/cancel', [requireLogin], async (req: Request, res: Response) => {
|
||||
r.post('/:id/cancel', [requireLogin, requireMemberState(MemberState.Member)], async (req: Request, res: Response) => {
|
||||
try {
|
||||
const eventID = Number(req.params.id);
|
||||
setEventCancelled(eventID, true);
|
||||
@@ -46,7 +47,7 @@ r.post('/:id/cancel', [requireLogin], async (req: Request, res: Response) => {
|
||||
res.status(500).send('Error setting cancel status');
|
||||
}
|
||||
})
|
||||
r.post('/:id/uncancel', [requireLogin], async (req: Request, res: Response) => {
|
||||
r.post('/:id/uncancel', [requireLogin, requireMemberState(MemberState.Member)], async (req: Request, res: Response) => {
|
||||
try {
|
||||
const eventID = Number(req.params.id);
|
||||
setEventCancelled(eventID, false);
|
||||
@@ -58,7 +59,7 @@ r.post('/:id/uncancel', [requireLogin], async (req: Request, res: Response) => {
|
||||
})
|
||||
|
||||
|
||||
r.post('/:id/attendance', [requireLogin], async (req: Request, res: Response) => {
|
||||
r.post('/:id/attendance', [requireLogin, requireMemberState(MemberState.Member)], async (req: Request, res: Response) => {
|
||||
try {
|
||||
let member = req.user.id;
|
||||
let event = Number(req.params.id);
|
||||
@@ -86,7 +87,7 @@ r.get('/:id', async (req: Request, res: Response) => {
|
||||
|
||||
|
||||
//post a new calendar event
|
||||
r.post('/', [requireLogin], async (req: Request, res: Response) => {
|
||||
r.post('/', [requireLogin, requireMemberState(MemberState.Member)], async (req: Request, res: Response) => {
|
||||
try {
|
||||
const member = req.user.id;
|
||||
let event: CalendarEvent = req.body;
|
||||
@@ -101,7 +102,7 @@ r.post('/', [requireLogin], async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
r.put('/', [requireLogin], async (req: Request, res: Response) => {
|
||||
r.put('/', [requireLogin, requireMemberState(MemberState.Member)], async (req: Request, res: Response) => {
|
||||
try {
|
||||
let event: CalendarEvent = req.body;
|
||||
event.start = new Date(event.start);
|
||||
|
||||
Reference in New Issue
Block a user