From 7155d759061712c4f7471997aedbe47bc7c45c9c Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Wed, 12 Jul 2023 17:48:11 +0200 Subject: [PATCH] Implement get view --- .../server/src/api/controllers/view/views.ts | 5 ++++ .../server/src/api/routes/tests/view.spec.ts | 29 +++++++++++++++++++ packages/server/src/api/routes/view.ts | 5 ++++ 3 files changed, 39 insertions(+) diff --git a/packages/server/src/api/controllers/view/views.ts b/packages/server/src/api/controllers/view/views.ts index 9627c0a1dc..b2aa389776 100644 --- a/packages/server/src/api/controllers/view/views.ts +++ b/packages/server/src/api/controllers/view/views.ts @@ -6,6 +6,11 @@ export async function fetch(ctx: Ctx) { ctx.body = { views: await sdk.views.fetch() } } +export async function find(ctx: Ctx) { + const viewId = `${DocumentType.VIEW}${SEPARATOR}${ctx.params.viewId}` + ctx.body = await sdk.views.get(viewId) +} + export async function findByTable(ctx: Ctx) { const tableId = `${DocumentType.TABLE}${SEPARATOR}${ctx.params.tableId}` ctx.body = { views: await sdk.views.findByTable(tableId) } diff --git a/packages/server/src/api/routes/tests/view.spec.ts b/packages/server/src/api/routes/tests/view.spec.ts index c1ce023a00..9691a418bc 100644 --- a/packages/server/src/api/routes/tests/view.spec.ts +++ b/packages/server/src/api/routes/tests/view.spec.ts @@ -45,6 +45,14 @@ describe("/views/v2", () => { .expect(200) } + const getView = async (viewId: string) => { + return request + .get(`/api/views/v2/${viewId}`) + .set(config.defaultHeaders()) + .expect("Content-Type", /json/) + .expect(200) + } + function createView(tableId: string): ViewV2 { return { name: generator.guid(), @@ -100,6 +108,27 @@ describe("/views/v2", () => { }) }) + describe("getView", () => { + let view: any + beforeAll(async () => { + view = (await saveView(createView(table._id!))).body + }) + + it("persist the view when the view is successfully created", async () => { + const res = await getView(view._id) + expect(res.status).toBe(200) + expect(res.body._id).toBeDefined() + + expect(res.body).toEqual({ + ...view, + _id: expect.any(String), + _rev: expect.any(String), + createdAt: expect.any(String), + updatedAt: expect.any(String), + }) + }) + }) + describe("create", () => { it("persist the view when the view is successfully created", async () => { const view = createView(table._id!) diff --git a/packages/server/src/api/routes/view.ts b/packages/server/src/api/routes/view.ts index faaf06d742..837306b92b 100644 --- a/packages/server/src/api/routes/view.ts +++ b/packages/server/src/api/routes/view.ts @@ -18,6 +18,11 @@ router authorized(permissions.BUILDER), viewController.v2.findByTable ) + .get( + `/api/views/v2/${DocumentType.VIEW}${SEPARATOR}:viewId`, + authorized(permissions.BUILDER), + viewController.v2.find + ) .post( "/api/views/v2", authorized(permissions.BUILDER),