Add assigment of crew to events and shifts

This commit is contained in:
Hornwitser 2025-03-15 18:18:08 +01:00
parent 0aff9cc94a
commit cef6b13dd1
7 changed files with 153 additions and 3 deletions

View file

@ -0,0 +1,23 @@
import { readAccounts } from "~/server/database"
import { requireAccountSession } from "~/server/utils/session";
export default defineEventHandler(async (event) => {
const session = await requireAccountSession(event);
const accounts = await readAccounts();
const account = accounts.find(a => a.id === session.accountId);
if (!account) {
throw new Error("Account does not exist");
}
if (account.type === "admin") {
return accounts;
}
if (account.type === "crew") {
return accounts.filter(a => a.type === "crew" || a.type === "admin");
}
throw createError({
status: 403,
statusText: "Forbidden",
message: "You do not have permission to list accounts",
});
})

View file

@ -29,6 +29,14 @@ export function canSeeCrew(accountType: string | undefined) {
export function filterSchedule(schedule: Schedule): Schedule {
return {
locations: schedule.locations,
events: schedule.events.filter(event => !event.crew),
events: schedule.events
.filter(event => !event.crew)
.map(event => ({
...event,
slots: event.slots.map(slot => ({
...slot,
assigned: undefined,
}),
}),
}
}