init: Initial commit

This commit is contained in:
Björn Benouarets
2026-01-19 08:42:07 +01:00
parent 1a47930d75
commit 74232ad2d2
74 changed files with 9822 additions and 98 deletions

41
app/api/session/route.ts Normal file
View File

@@ -0,0 +1,41 @@
import { NextResponse } from "next/server";
import { cookies } from "next/headers";
import { revalidatePath } from "next/cache";
export async function GET() {
if (!process.env.SECNEX_API_HOST || !process.env.SECNEX_API_KEY) {
return NextResponse.json({ success: false, message: "SecNex API host or key is not set" });
}
const cookieStore = await cookies();
const token = cookieStore.get("token");
if (!token) {
return NextResponse.json({ success: false, message: "No token found" });
}
try {
const response = await fetch(`${process.env.SECNEX_API_HOST}/session/info`, {
method: "POST",
body: JSON.stringify({ token: token.value }),
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${process.env.SECNEX_API_KEY}`,
},
});
if (!response.ok) {
cookieStore.delete("token");
revalidatePath("/", "layout");
return NextResponse.json({ success: false, message: "Token is invalid" });
}
const dataResponse = await response.json();
const body = dataResponse.body.session;
return NextResponse.json({ success: true, message: body.message, sessionInfo: body });
} catch (error) {
console.error(error);
cookieStore.delete("token");
revalidatePath("/", "layout");
return NextResponse.json({ success: false, message: "Failed to get session info" });
}
}