27 lines
778 B
TypeScript
27 lines
778 B
TypeScript
/**
|
|
* GET /api/fiche/[id]
|
|
* Proxy NocoDB — retourne la fiche complète avec tous les champs V2.
|
|
* Utilisé par pages/fiche/[id].vue (SSR).
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
const config = useRuntimeConfig()
|
|
const id = getRouterParam(event, 'id')
|
|
|
|
if (!id || isNaN(Number(id))) {
|
|
throw createError({ statusCode: 400, message: 'Identifiant invalide' })
|
|
}
|
|
|
|
const url = `${config.nocodbUrl}/api/v2/tables/${config.orgTableId}/records?where=(Id,eq,${id})&limit=1`
|
|
|
|
const data: any = await $fetch(url, {
|
|
headers: { 'xc-token': config.nocodbToken },
|
|
}).catch(() => null)
|
|
|
|
const record = data?.list?.[0] ?? null
|
|
if (!record) {
|
|
throw createError({ statusCode: 404, message: 'Organisation non trouvée' })
|
|
}
|
|
|
|
return record
|
|
})
|