33 lines
983 B
TypeScript
33 lines
983 B
TypeScript
import type { PageServerLoad } from "./$types";
|
||
import { error } from "@sveltejs/kit";
|
||
|
||
export const load: PageServerLoad = async ({ depends, locals: { supabase } }) => {
|
||
depends("db:study_spaces");
|
||
const { data: studySpaces, error: err } = await supabase
|
||
.from("study_spaces")
|
||
.select("*, study_space_images(*), study_space_hours(*)");
|
||
if (err) error(500, "Failed to load study spaces");
|
||
|
||
const {
|
||
data: { session }
|
||
} = await supabase.auth.getSession();
|
||
|
||
// Fetch this user’s favourites
|
||
let favouriteIds: string[] = [];
|
||
if (session?.user?.id) {
|
||
const { data: favs, error: favErr } = await supabase
|
||
.from("favourite_study_spaces")
|
||
.select("study_space_id")
|
||
.eq("user_id", session.user.id);
|
||
if (!favErr && favs) {
|
||
favouriteIds = favs.map((f) => f.study_space_id);
|
||
}
|
||
}
|
||
|
||
return {
|
||
studySpaces,
|
||
session,
|
||
favouriteIds
|
||
};
|
||
};
|