SPB Git

Repository Public

route.ts 1.6 KB 38 lines typescript

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
Files main
Menu

Theme