Fondation
This commit is contained in:
parent
cc4aa8a0a7
commit
c06691ce47
@ -4,6 +4,30 @@ import { authOptions } from "@/app/api/auth/options";
|
||||
import { prisma } from "@/lib/prisma";
|
||||
import { getCachedCalendarData, cacheCalendarData } from "@/lib/redis";
|
||||
import { logger } from "@/lib/logger";
|
||||
import { Prisma } from "@prisma/client";
|
||||
|
||||
// Type helper for calendar with all includes
|
||||
type CalendarWithIncludes = Prisma.CalendarGetPayload<{
|
||||
include: {
|
||||
events: true;
|
||||
mission: {
|
||||
include: {
|
||||
missionUsers: true;
|
||||
};
|
||||
};
|
||||
syncConfig: {
|
||||
include: {
|
||||
mailCredential: {
|
||||
select: {
|
||||
id: true;
|
||||
email: true;
|
||||
display_name: true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}>;
|
||||
|
||||
/**
|
||||
* Handles the GET request to retrieve calendars for the authenticated user.
|
||||
@ -168,15 +192,15 @@ export async function GET(req: NextRequest) {
|
||||
// Extract mission calendars (excluding those already in personalCalendars)
|
||||
// Use a Set to avoid duplicate calendars by ID
|
||||
const personalCalendarIds = new Set(filteredPersonalCalendars.map(cal => cal.id));
|
||||
const missionCalendars = missionUserRelations
|
||||
.flatMap(mu => mu.mission.calendars)
|
||||
.filter(cal => !personalCalendarIds.has(cal.id)); // Exclude calendars already in personalCalendars
|
||||
const missionCalendars: CalendarWithIncludes[] = missionUserRelations
|
||||
.flatMap(mu => mu.mission?.calendars || [])
|
||||
.filter(cal => !personalCalendarIds.has(cal.id)) as CalendarWithIncludes[]; // Exclude calendars already in personalCalendars
|
||||
|
||||
// Combine personal and mission calendars
|
||||
const calendars = [...filteredPersonalCalendars, ...missionCalendars];
|
||||
const calendars: CalendarWithIncludes[] = [...filteredPersonalCalendars, ...missionCalendars];
|
||||
|
||||
// Remove duplicate calendars by ID (in case same calendar appears multiple times)
|
||||
const uniqueCalendars = Array.from(
|
||||
const uniqueCalendars: CalendarWithIncludes[] = Array.from(
|
||||
new Map(calendars.map(cal => [cal.id, cal])).values()
|
||||
);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user