core/apps/webapp/app/services/session.server.ts
Harshith Mullapudi 8312cc342d Feat: ingest api
2025-06-04 15:03:14 +05:30

30 lines
875 B
TypeScript

import { redirect } from "@remix-run/node";
import { getUserById } from "~/models/user.server";
import { sessionStorage } from "./sessionStorage.server";
import { getImpersonationId } from "./impersonation.server";
export async function getUserId(request: Request): Promise<string | undefined> {
const impersonatedUserId = await getImpersonationId(request);
if (impersonatedUserId) return impersonatedUserId;
let session = await sessionStorage.getSession(request.headers.get("cookie"));
let user = session.get("user");
return user?.userId;
}
export async function getUser(request: Request) {
const userId = await getUserId(request);
if (userId === undefined) return null;
const user = await getUserById(userId);
if (user) return user;
throw await logout(request);
}
export async function logout(request: Request) {
return redirect("/logout");
}