diff --git a/app/(main)/events/[id]/page.tsx b/app/(main)/events/[id]/page.tsx
index eb10744..775ad53 100644
--- a/app/(main)/events/[id]/page.tsx
+++ b/app/(main)/events/[id]/page.tsx
@@ -158,7 +158,12 @@ export default function EventDetailsPage({ params }: EventDetailsPageProps) {
}, [event, user, isLoading, router]);
// ADD THESE: Fetch tickets and mutations
- const { data: ticketsData, isLoading: ticketsLoading } = useEventTicketsQuery(
+ const {
+ data: ticketsData,
+ isLoading: ticketsLoading,
+ isError: isTicketsError,
+ error: ticketsError,
+ } = useEventTicketsQuery(
{ eventId: params.id },
);
const createTicketMutation = useCreateEventTicketMutation();
@@ -1377,6 +1382,15 @@ export default function EventDetailsPage({ params }: EventDetailsPageProps) {
+ ) : isTicketsError ? (
+
+
Failed to load tickets.
+
+ {ticketsError instanceof Error
+ ? ticketsError.message
+ : "Please refresh and try again."}
+
+
) : tickets.length === 0 ? (
{`No tickets created yet. Click "Add Ticket" to create one.`}
diff --git a/lib/api/services/ticketService.ts b/lib/api/services/ticketService.ts
index f9545ab..a752c11 100644
--- a/lib/api/services/ticketService.ts
+++ b/lib/api/services/ticketService.ts
@@ -1,5 +1,21 @@
import { BASE_URL } from "../../config/api";
import { CreateEventTicketRequest } from "@/lib/types/requests/ticketsRequests";
+import { getStoredToken } from "./authService";
+
+const createAuthHeaders = (
+ additionalHeaders: Record
= {},
+): Record => {
+ const headers: Record = {
+ ...additionalHeaders,
+ };
+
+ const token = getStoredToken();
+ if (token) {
+ headers.Authorization = `Bearer ${token}`;
+ }
+
+ return headers;
+};
export const findAllTicketEvents = async (eventId?: string) => {
const url = new URL(`${BASE_URL}/tickets`);
@@ -9,9 +25,9 @@ export const findAllTicketEvents = async (eventId?: string) => {
const response = await fetch(url.toString(), {
method: "GET",
- headers: {
- "Content-Type": "application/json"
- },
+ headers: createAuthHeaders({
+ "Content-Type": "application/json",
+ }),
credentials: "include"
});
@@ -23,9 +39,9 @@ export const findAllTicketEvents = async (eventId?: string) => {
export const findOneEventTicket = async (id: string) => {
const response = await fetch(`${BASE_URL}/tickets/${id}`, {
method: "GET",
- headers: {
- "Content-Type": "application/json"
- },
+ headers: createAuthHeaders({
+ "Content-Type": "application/json",
+ }),
credentials: "include"
});
@@ -42,9 +58,9 @@ export const createEventTicket = async (ticketData: CreateEventTicketRequest) =>
const response = await fetch(`${BASE_URL}/tickets/create`, {
method: "POST",
- headers: {
- "Content-Type": "application/json"
- },
+ headers: createAuthHeaders({
+ "Content-Type": "application/json",
+ }),
credentials: "include",
body: JSON.stringify(formattedData)
});
@@ -60,9 +76,9 @@ export const updateEventTicket = async (
) => {
const response = await fetch(`${BASE_URL}/tickets/update/${id}`, {
method: "PATCH",
- headers: {
- "Content-Type": "application/json"
- },
+ headers: createAuthHeaders({
+ "Content-Type": "application/json",
+ }),
credentials: "include",
body: JSON.stringify(ticketData)
});
@@ -76,6 +92,7 @@ export const updateEventTicket = async (
export const deleteEventTicket = async (id: string) => {
const response = await fetch(`${BASE_URL}/tickets/delete/${id}`, {
method: "DELETE",
+ headers: createAuthHeaders(),
credentials: "include"
});