From 36b82681ff01f459cd9ab9759436087266823f9d Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Wed, 19 Jul 2023 18:02:15 +0200 Subject: [PATCH] Remove tableid from remove view url --- packages/backend-core/src/constants/db.ts | 1 - packages/server/src/api/controllers/view/viewsV2.ts | 4 ++-- packages/server/src/api/routes/tests/viewV2.spec.ts | 4 ++-- packages/server/src/api/routes/view.ts | 2 +- packages/server/src/db/utils.ts | 10 +++++++++- packages/server/src/sdk/app/views/index.ts | 4 +++- packages/server/src/tests/utilities/api/viewV2.ts | 8 ++------ 7 files changed, 19 insertions(+), 14 deletions(-) diff --git a/packages/backend-core/src/constants/db.ts b/packages/backend-core/src/constants/db.ts index ea21c04bc3..be49b9f261 100644 --- a/packages/backend-core/src/constants/db.ts +++ b/packages/backend-core/src/constants/db.ts @@ -70,7 +70,6 @@ export enum DocumentType { USER_FLAG = "flag", AUTOMATION_METADATA = "meta_au", AUDIT_LOG = "al", - VIEW = "vi", } export const StaticDatabases = { diff --git a/packages/server/src/api/controllers/view/viewsV2.ts b/packages/server/src/api/controllers/view/viewsV2.ts index 597dc54e66..9b4d91a822 100644 --- a/packages/server/src/api/controllers/view/viewsV2.ts +++ b/packages/server/src/api/controllers/view/viewsV2.ts @@ -13,8 +13,8 @@ export async function create(ctx: Ctx) { } export async function remove(ctx: Ctx) { - const { tableId, viewId } = ctx.params + const { viewId } = ctx.params - await sdk.views.remove(tableId, viewId) + await sdk.views.remove(viewId) ctx.status = 204 } diff --git a/packages/server/src/api/routes/tests/viewV2.spec.ts b/packages/server/src/api/routes/tests/viewV2.spec.ts index fa69023530..743b06f34d 100644 --- a/packages/server/src/api/routes/tests/viewV2.spec.ts +++ b/packages/server/src/api/routes/tests/viewV2.spec.ts @@ -60,7 +60,7 @@ describe("/v2/views", () => { expect(res).toEqual({ ...newView, - id: expect.stringMatching(new RegExp(`^vi_${config.table?._id!}_`)), + id: expect.stringMatching(new RegExp(`${config.table?._id!}_`)), version: 2, }) }) @@ -97,7 +97,7 @@ describe("/v2/views", () => { expect(await getPersistedView()).toBeDefined() - await config.api.viewV2.delete(tableId, view.id) + await config.api.viewV2.delete(view.id) expect(await getPersistedView()).toBeUndefined() }) diff --git a/packages/server/src/api/routes/view.ts b/packages/server/src/api/routes/view.ts index 010168aa13..ca93ec4de4 100644 --- a/packages/server/src/api/routes/view.ts +++ b/packages/server/src/api/routes/view.ts @@ -14,7 +14,7 @@ router viewController.v2.create ) .delete( - `/api/v2/views/:tableId/:viewId`, + `/api/v2/views/:viewId`, authorized(permissions.BUILDER), viewController.v2.remove ) diff --git a/packages/server/src/db/utils.ts b/packages/server/src/db/utils.ts index ba6ca88330..4d0981798b 100644 --- a/packages/server/src/db/utils.ts +++ b/packages/server/src/db/utils.ts @@ -277,5 +277,13 @@ export function getMultiIDParams(ids: string[]) { * @returns {string} The new view ID which the view doc can be stored under. */ export function generateViewID(tableId: string) { - return `${DocumentType.VIEW}${SEPARATOR}${tableId}${SEPARATOR}${newid()}` + return `${tableId}${SEPARATOR}${newid()}` +} + +export function extractViewInfoFromId(viewId: string) { + const regex = new RegExp(`^(?.+)${SEPARATOR}([^${SEPARATOR}]+)$`) + const res = regex.exec(viewId) + return { + tableId: res!.groups!["tableId"], + } } diff --git a/packages/server/src/sdk/app/views/index.ts b/packages/server/src/sdk/app/views/index.ts index 8492de51a3..e2c37db562 100644 --- a/packages/server/src/sdk/app/views/index.ts +++ b/packages/server/src/sdk/app/views/index.ts @@ -38,9 +38,11 @@ export function isV2(view: View | ViewV2): view is ViewV2 { return (view as ViewV2).version === 2 } -export async function remove(tableId: string, viewId: string): Promise { +export async function remove( viewId: string): Promise { const db = context.getAppDB() + const {tableId}=utils.extractViewInfoFromId(viewId) + const table = await sdk.tables.getTable(tableId) const view = await get(tableId, viewId) if (!view) { diff --git a/packages/server/src/tests/utilities/api/viewV2.ts b/packages/server/src/tests/utilities/api/viewV2.ts index 950b149cea..fe00f50dfe 100644 --- a/packages/server/src/tests/utilities/api/viewV2.ts +++ b/packages/server/src/tests/utilities/api/viewV2.ts @@ -31,13 +31,9 @@ export class ViewV2API extends TestAPI { return result.body.data as ViewV2 } - delete = async ( - tableId: string, - viewId: string, - { expectStatus } = { expectStatus: 204 } - ) => { + delete = async (viewId: string, { expectStatus } = { expectStatus: 204 }) => { return this.request - .delete(`/api/v2/views/${tableId}/${viewId}`) + .delete(`/api/v2/views/${viewId}`) .set(this.config.defaultHeaders()) .expect(expectStatus) }