frontend: initial commit
This commit is contained in:
58
frontend/src/hooks.server.js
Normal file
58
frontend/src/hooks.server.js
Normal file
@@ -0,0 +1,58 @@
|
||||
import { BASE_API_URI } from "$lib/utils/constants.js";
|
||||
|
||||
/** @type {import('@sveltejs/kit').Handle} */
|
||||
export async function handle({ event, resolve }) {
|
||||
if (event.locals.user) {
|
||||
// if there is already a user in session load page as normal
|
||||
return await resolve(event);
|
||||
}
|
||||
|
||||
// get cookies from browser
|
||||
const jwt = event.cookies.get("jwt");
|
||||
|
||||
if (!jwt) {
|
||||
// if there is no jwt load page as normal
|
||||
return await resolve(event);
|
||||
}
|
||||
const response = await fetch(`${BASE_API_URI}/users/backend/current-user`, {
|
||||
credentials: "include",
|
||||
headers: {
|
||||
Cookie: `jwt=${jwt}`,
|
||||
},
|
||||
});
|
||||
if (!response.ok) {
|
||||
// Clear the invalid JWT cookie
|
||||
event.cookies.delete("jwt", { path: "/" });
|
||||
return await resolve(event);
|
||||
}
|
||||
// find the user based on the jwt
|
||||
|
||||
const userData = await response.json();
|
||||
|
||||
event.locals.user = userData;
|
||||
// event.locals.user = await response.json();
|
||||
if (event.locals.user.date_of_birth) {
|
||||
event.locals.user.date_of_birth =
|
||||
event.locals.user.date_of_birth.split("T")[0];
|
||||
}
|
||||
if (event.locals.user.membership) {
|
||||
if (event.locals.user.membership.start_date) {
|
||||
event.locals.user.membership.start_date =
|
||||
event.locals.user.membership.start_date.split("T")[0];
|
||||
}
|
||||
if (event.locals.user.membership.end_date) {
|
||||
event.locals.user.membership.end_date =
|
||||
event.locals.user.membership.end_date.split("T")[0];
|
||||
}
|
||||
}
|
||||
if (
|
||||
event.locals.user.bank_account &&
|
||||
event.locals.user.bank_account.mandate_date_signed
|
||||
) {
|
||||
event.locals.user.bank_account.mandate_date_signed =
|
||||
event.locals.user.bank_account.mandate_date_signed.split("T")[0];
|
||||
}
|
||||
|
||||
// load page as normal
|
||||
return await resolve(event);
|
||||
}
|
||||
Reference in New Issue
Block a user