refactor: unify backend and frontend servers (#3)

* refactor: unify backend and frontend servers

* refactor: correct paths for openapi & drizzle

* refactor: move api-client to client

* fix: drizzle paths

* chore: fix linting issues

* fix: form reset issue
This commit is contained in:
Nico
2025-11-13 20:11:46 +01:00
committed by GitHub
parent 8d7e50508d
commit 95a0d44b45
240 changed files with 5171 additions and 5875 deletions

26
app/middleware/auth.ts Normal file
View File

@@ -0,0 +1,26 @@
import { redirect, type MiddlewareFunction } from "react-router";
import { getMe, getStatus } from "~/client/api-client";
import { appContext } from "~/context";
export const authMiddleware: MiddlewareFunction = async ({ context, request }) => {
const session = await getMe();
const isAuthRoute = ["/login", "/onboarding"].includes(new URL(request.url).pathname);
if (!session.data?.user?.id && !isAuthRoute) {
const status = await getStatus();
if (!status.data?.hasUsers) {
throw redirect("/onboarding");
}
throw redirect("/login");
}
if (session.data?.user?.id) {
context.set(appContext, { user: session.data.user, hasUsers: true });
if (isAuthRoute) {
throw redirect("/");
}
}
};