diff --git a/apps/backend/src/app/api/admin/game-session-schedules/[id]/route.ts b/apps/backend/src/app/api/admin/game-session-schedules/[id]/route.ts
index b2ebd1e48..aa6974236 100644
--- a/apps/backend/src/app/api/admin/game-session-schedules/[id]/route.ts
+++ b/apps/backend/src/app/api/admin/game-session-schedules/[id]/route.ts
@@ -14,7 +14,7 @@ class RouteWrapper {
* @param params route parameters containing the GameSessionSchedule ID
* @returns OK code and the game session schedule data
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const { id } = await params
@@ -43,7 +43,7 @@ class RouteWrapper {
* @param params Route parameters containing the GameSessionSchedule ID.
* @returns The updated {@link GameSessionSchedule} document, otherwise an appropriate error response.
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async PATCH(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const parsedBody = UpdateGameSessionScheduleRequestSchema.parse(await req.json())
@@ -81,7 +81,7 @@ class RouteWrapper {
* @param params Route parameters containing the GameSessionSchedule ID
* @returns No content status code
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async DELETE(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const { id } = await params
diff --git a/apps/backend/src/app/api/admin/game-session-schedules/route.ts b/apps/backend/src/app/api/admin/game-session-schedules/route.ts
index f085d8d7e..ca5cdad4d 100644
--- a/apps/backend/src/app/api/admin/game-session-schedules/route.ts
+++ b/apps/backend/src/app/api/admin/game-session-schedules/route.ts
@@ -13,7 +13,7 @@ class GameSessionSchedulesRouteWrapper {
* @param req The request object containing the request body.
* @returns All {@link GameSessionSchedule} documents, otherwise an appropriate error response.
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async GET(req: NextRequest) {
try {
const { searchParams } = new URL(req.url)
@@ -55,7 +55,7 @@ class GameSessionSchedulesRouteWrapper {
* @param req The request object containing the request body.
* @returns The created {@link GameSessionSchedule} document, otherwise an appropriate error response.
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async POST(req: NextRequest) {
try {
const parsedBody = CreateGameSessionScheduleRequestSchema.parse(await req.json())
diff --git a/apps/backend/src/app/api/admin/game-sessions/[id]/route.ts b/apps/backend/src/app/api/admin/game-sessions/[id]/route.ts
index 6b87b14d9..8671639e6 100644
--- a/apps/backend/src/app/api/admin/game-sessions/[id]/route.ts
+++ b/apps/backend/src/app/api/admin/game-sessions/[id]/route.ts
@@ -14,7 +14,7 @@ class GameSessionRouteWrapper {
* @param params route parameters containing the GameSession ID
* @returns No content status code
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async DELETE(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const { id } = await params
@@ -41,7 +41,7 @@ class GameSessionRouteWrapper {
* @param req The request object containing the request body
* @returns The updated {@link gameSession} document
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async PATCH(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const { id } = await params
diff --git a/apps/backend/src/app/api/admin/semesters/[id]/route.ts b/apps/backend/src/app/api/admin/semesters/[id]/route.ts
index acfedc084..6c10d4c0d 100644
--- a/apps/backend/src/app/api/admin/semesters/[id]/route.ts
+++ b/apps/backend/src/app/api/admin/semesters/[id]/route.ts
@@ -13,7 +13,7 @@ class SemesterRouteWrapper {
* @param req The request object containing the request body
* @returns No content status code
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async DELETE(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const { id } = await params
@@ -37,7 +37,7 @@ class SemesterRouteWrapper {
* @param params The route parameters containing the Semester ID
* @returns The updated {@link Semester} document
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async PATCH(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const { id } = await params
diff --git a/apps/backend/src/app/api/admin/semesters/route.ts b/apps/backend/src/app/api/admin/semesters/route.ts
index f3885d757..e3912994a 100644
--- a/apps/backend/src/app/api/admin/semesters/route.ts
+++ b/apps/backend/src/app/api/admin/semesters/route.ts
@@ -14,7 +14,7 @@ class SemesterRouteWrapper {
* @param req The request object containing the request body
* @returns The created {@link Semester} document.
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async POST(req: NextRequest) {
try {
const parsedBody = CreateSemesterRequestSchema.parse(await req.json())
diff --git a/apps/backend/src/app/api/admin/users/[id]/route.test.ts b/apps/backend/src/app/api/admin/users/[id]/route.test.ts
index 66056e6f1..4f2a369bb 100644
--- a/apps/backend/src/app/api/admin/users/[id]/route.test.ts
+++ b/apps/backend/src/app/api/admin/users/[id]/route.test.ts
@@ -80,7 +80,7 @@ describe("/api/admin/users/[id]", async () => {
expect(res.status).toBe(StatusCodes.OK)
const json = await res.json()
expect(json.data.id).toBe(ADMIN_USER_UID)
- expect(json.data.role).toBe("admin")
+ expect(json.data.role).toBe("Admin")
expect(consoleErrorSpy).not.toHaveBeenCalled()
})
@@ -92,7 +92,7 @@ describe("/api/admin/users/[id]", async () => {
expect(res.status).toBe(StatusCodes.OK)
const json = await res.json()
expect(json.data.id).toBe(CASUAL_USER_UID)
- expect(json.data.role).toBe("casual")
+ expect(json.data.role).toBe("Casual")
expect(consoleErrorSpy).not.toHaveBeenCalled()
})
@@ -104,7 +104,7 @@ describe("/api/admin/users/[id]", async () => {
expect(res.status).toBe(StatusCodes.OK)
const json = await res.json()
expect(json.data.id).toBe(MEMBER_USER_UID)
- expect(json.data.role).toBe("member")
+ expect(json.data.role).toBe("Member")
expect(consoleErrorSpy).not.toHaveBeenCalled()
})
diff --git a/apps/backend/src/app/api/admin/users/[id]/route.ts b/apps/backend/src/app/api/admin/users/[id]/route.ts
index d50dce85a..5109fd009 100644
--- a/apps/backend/src/app/api/admin/users/[id]/route.ts
+++ b/apps/backend/src/app/api/admin/users/[id]/route.ts
@@ -14,7 +14,7 @@ class UserRouteWrapper {
* @param params The route parameters containing the user ID
* @returns The user data if found, otherwise appropriate error response
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const { id } = await params
@@ -41,7 +41,7 @@ class UserRouteWrapper {
* @param params The route parameters containing the User ID
* @returns The updated User document
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async PATCH(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const { id } = await params
@@ -74,7 +74,7 @@ class UserRouteWrapper {
* @param params The route parameters containing the user ID
* @returns No content response if successful, otherwise appropriate error response
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async DELETE(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
try {
const { id } = await params
diff --git a/apps/backend/src/app/api/admin/users/route.ts b/apps/backend/src/app/api/admin/users/route.ts
index 4806bb091..58698cd78 100644
--- a/apps/backend/src/app/api/admin/users/route.ts
+++ b/apps/backend/src/app/api/admin/users/route.ts
@@ -12,7 +12,7 @@ class UsersRouteWrapper {
* @param req The request object containing query parameters for pagination
* @returns Paginated user data with proper metadata
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async GET(req: NextRequest) {
try {
const { searchParams } = new URL(req.url)
@@ -45,7 +45,7 @@ class UsersRouteWrapper {
* @param req The request object containing the request body
* @returns The created {@link User} document.
*/
- @Security("jwt", ["admin"])
+ @Security("jwt", ["ADMIN"])
static async POST(req: NextRequest) {
try {
const parsedBody = CreateUserRequestSchema.parse(await req.json())
diff --git a/apps/backend/src/app/api/auth/google/callback/route.ts b/apps/backend/src/app/api/auth/google/callback/route.ts
index d71072836..87a1587ab 100644
--- a/apps/backend/src/app/api/auth/google/callback/route.ts
+++ b/apps/backend/src/app/api/auth/google/callback/route.ts
@@ -99,7 +99,7 @@ export const GET = async (req: NextRequest) => {
user = await userService.createUser({
firstName: given_name,
lastName: family_name,
- role: MembershipType.casual,
+ role: MembershipType.CASUAL,
email,
})
} else {
diff --git a/apps/backend/src/app/api/auth/register/route.ts b/apps/backend/src/app/api/auth/register/route.ts
index ce5cacbe1..f6a0b501f 100644
--- a/apps/backend/src/app/api/auth/register/route.ts
+++ b/apps/backend/src/app/api/auth/register/route.ts
@@ -25,7 +25,7 @@ export const POST = async (req: NextRequest) => {
}
}
- const user = await userDataService.createUser({ ...parsedBody, role: "casual" })
+ const user = await userDataService.createUser({ ...parsedBody, role: "Casual" })
const hash = await StandardSecurity.hashPassword(parsedBody.password)
await authDataService.createAuth({
email: parsedBody.email,
diff --git a/apps/backend/src/data-layer/collections/User.ts b/apps/backend/src/data-layer/collections/User.ts
index 3e6bc8760..f5716fd11 100644
--- a/apps/backend/src/data-layer/collections/User.ts
+++ b/apps/backend/src/data-layer/collections/User.ts
@@ -31,7 +31,7 @@ export const User: CollectionConfig = {
type: "select",
required: true,
options: Object.values(MembershipType),
- defaultValue: MembershipType.casual,
+ defaultValue: MembershipType.CASUAL,
admin: {
description: "The role of the user",
},
diff --git a/packages/shared/src/mocks/User.mock.ts b/packages/shared/src/mocks/User.mock.ts
index 935a2d4ed..dc16c76ab 100644
--- a/packages/shared/src/mocks/User.mock.ts
+++ b/packages/shared/src/mocks/User.mock.ts
@@ -10,7 +10,7 @@ export const casualUserMock: User = {
firstName: "straight",
lastName: "zhao",
email: "straight.zhao@casual.com",
- role: MembershipType.casual,
+ role: MembershipType.CASUAL,
remainingSessions: 4,
updatedAt: new Date(2025, 0, 1).toISOString(),
createdAt: new Date(2025, 0, 1).toISOString(),
@@ -21,7 +21,7 @@ export const memberUserMock: User = {
firstName: "straight",
lastName: "zhao",
email: "straight.zhao@member.com",
- role: MembershipType.member,
+ role: MembershipType.MEMBER,
remainingSessions: 5,
updatedAt: new Date(2025, 0, 1).toISOString(),
createdAt: new Date(2025, 0, 1).toISOString(),
@@ -32,7 +32,7 @@ export const adminUserMock: User = {
firstName: "straight",
lastName: "zhao",
email: "straight.zhao@admin.com",
- role: MembershipType.admin,
+ role: MembershipType.ADMIN,
remainingSessions: 6,
updatedAt: new Date(2025, 0, 1).toISOString(),
createdAt: new Date(2025, 0, 1).toISOString(),
@@ -42,7 +42,7 @@ export const userCreateMock: CreateUserData = {
firstName: "straight",
lastName: "zhao",
email: "straight.zhao@example.com",
- role: MembershipType.casual,
+ role: MembershipType.CASUAL,
remainingSessions: 7,
image: null,
}
diff --git a/packages/shared/src/payload-types.ts b/packages/shared/src/payload-types.ts
index 905845f19..da30b1c9a 100644
--- a/packages/shared/src/payload-types.ts
+++ b/packages/shared/src/payload-types.ts
@@ -301,7 +301,7 @@ export interface User {
/**
* The role of the user
*/
- role: 'member' | 'casual' | 'admin';
+ role: 'Member' | 'Casual' | 'Admin';
/**
* The phone number of the user
*/
diff --git a/packages/shared/src/schemas/user.ts b/packages/shared/src/schemas/user.ts
index de667c914..2f336c815 100644
--- a/packages/shared/src/schemas/user.ts
+++ b/packages/shared/src/schemas/user.ts
@@ -16,7 +16,7 @@ export const UserSchema = z.object({
lastName: z.string().nullable().optional(),
email: z.string().email(),
// Payload generates a hard coded role type, the `satisfies` operator is used to ensure the type matches
- role: z.enum(["admin", "member", "casual"]),
+ role: z.enum(["Admin", "Member", "Casual"]),
remainingSessions: z.number().nullable().optional(),
image: z.union([z.string(), MediaSchema]).nullable().optional(),
updatedAt: z.string(),
diff --git a/packages/shared/src/types/enums.ts b/packages/shared/src/types/enums.ts
index e7d2ef04e..ee8715d3f 100644
--- a/packages/shared/src/types/enums.ts
+++ b/packages/shared/src/types/enums.ts
@@ -1,7 +1,7 @@
export enum MembershipType {
- member = "member",
- casual = "casual",
- admin = "admin",
+ MEMBER = "Member",
+ CASUAL = "Casual",
+ ADMIN = "Admin",
}
export enum Weekday {
diff --git a/packages/ui/src/components/Composite/AdminTable/AdminTable.stories.tsx b/packages/ui/src/components/Composite/AdminTable/AdminTable.stories.tsx
index cd8d1a5e4..2af16e26c 100644
--- a/packages/ui/src/components/Composite/AdminTable/AdminTable.stories.tsx
+++ b/packages/ui/src/components/Composite/AdminTable/AdminTable.stories.tsx
@@ -23,7 +23,7 @@ const mockData = [
id: "1",
name: "Alice Smith",
email: "alice@example.com",
- role: "admin",
+ role: "Admin",
remaining: "10",
joined: "2021-01-01",
university: "University of Auckland",
@@ -33,7 +33,7 @@ const mockData = [
id: "2",
name: "Bob Smith",
email: "bob@example.com",
- role: "casual",
+ role: "Casual",
remaining: "10",
joined: "2021-01-01",
university: "Auckland University of Technology",
@@ -43,7 +43,7 @@ const mockData = [
id: "3",
name: "Charlie Smith",
email: "charlie@example.com",
- role: "member",
+ role: "Member",
remaining: "10",
joined: "2021-01-01",
university: "Massey University",
@@ -53,7 +53,7 @@ const mockData = [
id: "4",
name: "David Smith",
email: "david@example.com",
- role: "casual",
+ role: "Casual",
remaining: "10",
joined: "2021-01-01",
university: "University of Auckland",
@@ -63,7 +63,7 @@ const mockData = [
id: "5",
name: "Eve Smith",
email: "eve@example.com",
- role: "member",
+ role: "Member",
remaining: "10",
joined: "2021-01-01",
university: "Auckland University of Technology",
@@ -73,7 +73,7 @@ const mockData = [
id: "6",
name: "Frank Smith",
email: "frank@example.com",
- role: "casual",
+ role: "Casual",
remaining: "10",
joined: "2021-01-01",
university: "Massey University",
@@ -83,7 +83,7 @@ const mockData = [
id: "7",
name: "Grace Smith",
email: "grace@example.com",
- role: "member",
+ role: "Member",
remaining: "10",
joined: "2021-01-01",
university: "University of Auckland",
@@ -93,7 +93,7 @@ const mockData = [
id: "8",
name: "Hank Smith",
email: "hank@example.com",
- role: "casual",
+ role: "Casual",
remaining: "10",
joined: "2021-01-01",
university: "Auckland University of Technology",
diff --git a/packages/ui/src/components/Composite/AdminTable/AdminTable.test.tsx b/packages/ui/src/components/Composite/AdminTable/AdminTable.test.tsx
index a009205cf..d08b0f5ba 100644
--- a/packages/ui/src/components/Composite/AdminTable/AdminTable.test.tsx
+++ b/packages/ui/src/components/Composite/AdminTable/AdminTable.test.tsx
@@ -7,7 +7,7 @@ const mockData = [
id: "1",
name: "Alice Smith",
email: "alice@example.com",
- role: "member",
+ role: "Member",
remaining: "10",
university: "University of Auckland",
joined: "2021-01-01",
@@ -17,7 +17,7 @@ const mockData = [
id: "2",
name: "Bob Smith",
email: "bob@example.com",
- role: "member",
+ role: "Member",
remaining: "10",
university: "University of Auckland",
joined: "2021-01-01",
@@ -27,7 +27,7 @@ const mockData = [
id: "3",
name: "Charlie Smith",
email: "charlie@example.com",
- role: "member",
+ role: "Member",
remaining: "10",
university: "University of Auckland",
joined: "2021-01-01",
diff --git a/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.stories.tsx b/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.stories.tsx
index bf4cb5f85..61a74ce20 100644
--- a/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.stories.tsx
+++ b/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.stories.tsx
@@ -35,7 +35,7 @@ export const Default: Story = {}
export const Casual: Story = {
parameters: {
query: {
- "booking-confirmed-popup-value": MembershipType.casual,
+ "booking-confirmed-popup-value": MembershipType.CASUAL,
},
},
}
diff --git a/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.test.tsx b/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.test.tsx
index 1d6a39e72..3b1f7eb22 100644
--- a/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.test.tsx
+++ b/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.test.tsx
@@ -36,7 +36,7 @@ describe("", () => {
wrapper: withNuqsTestingAdapter({
searchParams: {
"booking-confirmed-popup": "open",
- "booking-confirmed-popup-value": MembershipType.casual,
+ "booking-confirmed-popup-value": MembershipType.CASUAL,
},
}),
})
diff --git a/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.tsx b/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.tsx
index cb01e30d5..33d8c99e7 100644
--- a/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.tsx
+++ b/packages/ui/src/components/Composite/BookingConfirmedPopup/BookingConfirmedPopup.tsx
@@ -51,7 +51,7 @@ export const BookingConfirmedPopup: FC = ({
title,
message,
additionalMessage,
- initialValue = MembershipType.member,
+ initialValue = MembershipType.MEMBER,
linkText = "View Booking",
...props
}) => {
@@ -68,7 +68,7 @@ export const BookingConfirmedPopup: FC = ({
{message}
- {value === MembershipType.casual && additionalMessage && {additionalMessage}}
+ {value === MembershipType.CASUAL && additionalMessage && {additionalMessage}}