Repository Public
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// Session courante : { user } si le cookie vp_ka_session est valide, sinon3// { user: null } — consommé par le bouton compte de l'en-tête et la page /compte.4// La réponse est enrichie du profil saisi au HUB Groupe KA (bio, ville, emploi,5// entreprise, âge, site web, réseaux, statut, profil public) quand il est6// joignable — profile_source: "groupe-ka" ; sinon retombée sur la session7// locale — profile_source: "local".8import { NextRequest, NextResponse } from "next/server";9import { SESSION_COOKIE, readSession } from "@/lib/ka-auth";10import { fetchHubProfile } from "@/lib/hub-profile";1112export async function GET(req: NextRequest) {13 const s = readSession(req.cookies.get(SESSION_COOKIE)?.value);14 if (!s) return NextResponse.json({ user: null });15 const hub = await fetchHubProfile(s.ka_id); // cache 60 s, null si injoignable16 return NextResponse.json({17 user: {18 ka_id: s.ka_id,19 email: hub?.email || s.email,20 name: hub?.name || s.name,21 picture: hub?.picture || s.picture,22 provider: s.provider ?? "ka-id",23 // — profil Groupe KA (source de vérité : groupe-ka.com/compte) —24 bio: hub?.bio ?? "",25 city: hub?.city ?? "",26 job_title: hub?.job_title ?? "",27 company: hub?.company ?? "",28 age: hub?.age ?? null,29 website: hub?.website ?? "",30 socials: hub?.socials ?? {},31 role_label: hub?.role_label ?? "",32 public: hub?.public ?? false,33 public_url: hub?.public_url ?? "",34 profile_source: hub ? "groupe-ka" : "local",35 },36 });37}38