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'),