From 617411e5b62fcffff56a82cf5131fee00fc7e294 Mon Sep 17 00:00:00 2001 From: Corentin Date: Tue, 12 May 2026 09:08:29 +0000 Subject: [PATCH] feat(bridge): GET /admin/tables/:tableId/views to list views Needed by the create-database flow on the client to resolve the auto-created Grid view id and insert the embed node with a real viewId (so the renderer can fetch its rows). --- bridge/src/adapters/baserow-admin-client.ts | 4 ++++ bridge/src/routes/admin.ts | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/bridge/src/adapters/baserow-admin-client.ts b/bridge/src/adapters/baserow-admin-client.ts index 4f359dd..1ff2b6f 100644 --- a/bridge/src/adapters/baserow-admin-client.ts +++ b/bridge/src/adapters/baserow-admin-client.ts @@ -198,6 +198,10 @@ export class BaserowAdminClient { // -------- Views -------- + async listViews(tableId: number): Promise { + return this.request(`/database/views/table/${tableId}/`); + } + async createView(tableId: number, payload: CreateViewPayload): Promise { return this.request(`/database/views/table/${tableId}/`, { method: 'POST', diff --git a/bridge/src/routes/admin.ts b/bridge/src/routes/admin.ts index 6c1e6e2..4d5d5ce 100644 --- a/bridge/src/routes/admin.ts +++ b/bridge/src/routes/admin.ts @@ -14,6 +14,7 @@ * POST /v1/admin/tables/:tableId/fields body: { name, type, ... } * PATCH /v1/admin/fields/:fieldId body: { name?, type?, ... } * DELETE /v1/admin/fields/:fieldId + * GET /v1/admin/tables/:tableId/views list views in table * POST /v1/admin/tables/:tableId/views body: { name, type } * PATCH /v1/admin/views/:viewId body: { name?, ... } * DELETE /v1/admin/views/:viewId @@ -196,6 +197,16 @@ adminRoutes.delete('/fields/:fieldId', requireScope('tables:write'), async (c) = // ---------- Views ---------- +adminRoutes.get( + '/tables/:tableId/views', + requireScope('tables:write'), + async (c) => { + const tableId = parseIntId(c.req.param('tableId'), 'tableId'); + const data = await getContainer().baserowAdmin.listViews(tableId); + return c.json({ data }); + }, +); + adminRoutes.post( '/tables/:tableId/views', requireScope('tables:write'),