diff --git a/src/app/api/user/[user]/calendar/route.ts b/src/app/api/user/[user]/calendar/route.ts
index f6b6098..bf01738 100644
--- a/src/app/api/user/[user]/calendar/route.ts
+++ b/src/app/api/user/[user]/calendar/route.ts
@@ -136,15 +136,15 @@ export const GET = auth(async function GET(req, { params }) {
start_time: 'asc',
},
select: {
- id: requestUserId === requestedUserId ? true : false,
- reason: requestUserId === requestedUserId ? true : false,
+ id: true,
+ reason: true,
start_time: true,
end_time: true,
- is_recurring: requestUserId === requestedUserId ? true : false,
- recurrence_end_date: requestUserId === requestedUserId ? true : false,
- rrule: requestUserId === requestedUserId ? true : false,
- created_at: requestUserId === requestedUserId ? true : false,
- updated_at: requestUserId === requestedUserId ? true : false,
+ is_recurring: true,
+ recurrence_end_date: true,
+ rrule: true,
+ created_at: true,
+ updated_at: true,
},
},
},
@@ -167,6 +167,7 @@ export const GET = auth(async function GET(req, { params }) {
calendar.push({ ...event.meeting, type: 'event' });
} else {
calendar.push({
+ id: event.meeting.id,
start_time: event.meeting.start_time,
end_time: event.meeting.end_time,
type: 'blocked_private',
@@ -182,6 +183,7 @@ export const GET = auth(async function GET(req, { params }) {
calendar.push({ ...event, type: 'event' });
} else {
calendar.push({
+ id: event.id,
start_time: event.start_time,
end_time: event.end_time,
type: 'blocked_private',
@@ -190,19 +192,27 @@ export const GET = auth(async function GET(req, { params }) {
}
for (const slot of requestedUser.blockedSlots) {
- calendar.push({
- start_time: slot.start_time,
- end_time: slot.end_time,
- id: slot.id,
- reason: slot.reason,
- is_recurring: slot.is_recurring,
- recurrence_end_date: slot.recurrence_end_date,
- rrule: slot.rrule,
- created_at: slot.created_at,
- updated_at: slot.updated_at,
- type:
- requestUserId === requestedUserId ? 'blocked_owned' : 'blocked_private',
- });
+ if (requestUserId === requestedUserId) {
+ calendar.push({
+ start_time: slot.start_time,
+ end_time: slot.end_time,
+ id: slot.id,
+ reason: slot.reason,
+ is_recurring: slot.is_recurring,
+ recurrence_end_date: slot.recurrence_end_date,
+ rrule: slot.rrule,
+ created_at: slot.created_at,
+ updated_at: slot.updated_at,
+ type: 'blocked_owned',
+ });
+ } else {
+ calendar.push({
+ start_time: slot.start_time,
+ end_time: slot.end_time,
+ id: slot.id,
+ type: 'blocked_private',
+ });
+ }
}
return returnZodTypeCheckedResponse(UserCalendarResponseSchema, {
diff --git a/src/app/api/user/[user]/calendar/validation.ts b/src/app/api/user/[user]/calendar/validation.ts
index a0d179f..996307f 100644
--- a/src/app/api/user/[user]/calendar/validation.ts
+++ b/src/app/api/user/[user]/calendar/validation.ts
@@ -13,6 +13,7 @@ export const BlockedSlotSchema = zod
start_time: eventStartTimeSchema,
end_time: eventEndTimeSchema,
type: zod.literal('blocked_private'),
+ id: zod.string(),
})
.openapi('BlockedSlotSchema', {
description: 'Blocked time slot in the user calendar',
diff --git a/src/app/home/page.tsx b/src/app/home/page.tsx
index 68e51bf..c201134 100644
--- a/src/app/home/page.tsx
+++ b/src/app/home/page.tsx
@@ -1,5 +1,14 @@
+'use client';
+import { useSession } from 'next-auth/react';
+
import Calendar from '@/components/calendar';
-export default function home() {
- return