From 85b2db1f023d49bc066315ee020c01db4ab4f8c9 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Fri, 7 Feb 2025 11:52:31 +0000 Subject: [PATCH] Majority of comments. --- .../backend/modals/DeleteDataConfirmationModal.svelte | 7 ++++--- packages/builder/src/stores/builder/screens.ts | 4 ++-- packages/frontend-core/src/api/screens.ts | 6 +++--- packages/server/src/api/controllers/screen.ts | 10 ++-------- packages/server/src/api/routes/tests/screen.spec.ts | 4 ++-- packages/server/src/tests/utilities/api/screen.ts | 6 +++--- packages/shared-core/src/sdk/documents/screens.ts | 4 ++-- packages/types/src/api/web/app/screen.ts | 3 +-- 8 files changed, 19 insertions(+), 25 deletions(-) diff --git a/packages/builder/src/components/backend/modals/DeleteDataConfirmationModal.svelte b/packages/builder/src/components/backend/modals/DeleteDataConfirmationModal.svelte index b52d3bce3c..82271bd066 100644 --- a/packages/builder/src/components/backend/modals/DeleteDataConfirmationModal.svelte +++ b/packages/builder/src/components/backend/modals/DeleteDataConfirmationModal.svelte @@ -10,7 +10,7 @@ viewsV2, } from "@/stores/builder" import ConfirmDialog from "@/components/common/ConfirmDialog.svelte" - import { helpers } from "@budibase/shared-core" + import { helpers, utils } from "@budibase/shared-core" import { SourceType } from "@budibase/types" import { goto, params } from "@roxi/routify" import { DB_TYPE_EXTERNAL } from "@/constants/backend" @@ -45,7 +45,7 @@ } export const show = async () => { - const usage = await screenStore.usageOfScreens(getSourceID()) + const usage = await screenStore.usageInScreens(getSourceID()) affectedScreens = processScreens(usage.screens) sourceType = usage.sourceType confirmDeleteDialog.show() @@ -93,7 +93,6 @@ } notifications.success("View deleted") } catch (error) { - console.error(error) notifications.error("Error deleting view") } } @@ -140,6 +139,8 @@ return await deleteQuery(source as Query) case SourceType.DATASOURCE: return await deleteDatasource(source as Datasource) + default: + utils.unreachable(sourceType) } } diff --git a/packages/builder/src/stores/builder/screens.ts b/packages/builder/src/stores/builder/screens.ts index 1f23f9b1d1..b7d9a8be30 100644 --- a/packages/builder/src/stores/builder/screens.ts +++ b/packages/builder/src/stores/builder/screens.ts @@ -504,8 +504,8 @@ export class ScreenStore extends BudiStore { /** * Provides a list of screens that are used by a given source ID (table, view, datasource, query) */ - async usageOfScreens(sourceId: string) { - return API.usageOfScreens(sourceId) + async usageInScreens(sourceId: string) { + return API.usageInScreens(sourceId) } } diff --git a/packages/frontend-core/src/api/screens.ts b/packages/frontend-core/src/api/screens.ts index 8147db738d..0bcca9cfd3 100644 --- a/packages/frontend-core/src/api/screens.ts +++ b/packages/frontend-core/src/api/screens.ts @@ -2,14 +2,14 @@ import { DeleteScreenResponse, SaveScreenRequest, SaveScreenResponse, - UsageOfScreensResponse, + UsageInScreensResponse, } from "@budibase/types" import { BaseAPIClient } from "./types" export interface ScreenEndpoints { saveScreen: (screen: SaveScreenRequest) => Promise deleteScreen: (id: string, rev: string) => Promise - usageOfScreens: (sourceId: string) => Promise + usageInScreens: (sourceId: string) => Promise } export const buildScreenEndpoints = (API: BaseAPIClient): ScreenEndpoints => ({ @@ -35,7 +35,7 @@ export const buildScreenEndpoints = (API: BaseAPIClient): ScreenEndpoints => ({ }) }, - usageOfScreens: async sourceId => { + usageInScreens: async sourceId => { return await API.post({ url: `/api/screens/usage/${sourceId}`, }) diff --git a/packages/server/src/api/controllers/screen.ts b/packages/server/src/api/controllers/screen.ts index ea00e60e1a..456d5729db 100644 --- a/packages/server/src/api/controllers/screen.ts +++ b/packages/server/src/api/controllers/screen.ts @@ -17,7 +17,7 @@ import { ScreenProps, ScreenUsage, SourceType, - UsageOfScreensResponse, + UsageInScreensResponse, UserCtx, } from "@budibase/types" import { builderSocket } from "../../websockets" @@ -138,7 +138,7 @@ function findPlugins(component: ScreenProps, foundPlugins: string[]) { component._children.forEach(child => findPlugins(child, foundPlugins)) } -export async function usage(ctx: UserCtx) { +export async function usage(ctx: UserCtx) { const sourceId = ctx.params.sourceId const sourceType = sdk.common.getSourceType(sourceId) const allScreens = await sdk.screens.fetch() @@ -152,14 +152,8 @@ export async function usage(ctx: UserCtx) { }) } } - const isInternalTable = - sourceType === SourceType.TABLE && - sdk.tables.isInternal({ tableId: sourceId }) - const isInternalView = - sourceType === SourceType.VIEW && sdk.views.isInternal(sourceId) ctx.body = { sourceType, - internal: isInternalTable || isInternalView, screens: response, } } diff --git a/packages/server/src/api/routes/tests/screen.spec.ts b/packages/server/src/api/routes/tests/screen.spec.ts index a4c0b23232..32f4e4b361 100644 --- a/packages/server/src/api/routes/tests/screen.spec.ts +++ b/packages/server/src/api/routes/tests/screen.spec.ts @@ -6,7 +6,7 @@ import { Role, BuiltinPermissionID, SourceType, - UsageOfScreensResponse, + UsageInScreensResponse, } from "@budibase/types" const { @@ -193,7 +193,7 @@ describe("/screens", () => { await config.api.screen.save(basicScreen()) }) - function confirmScreen(usage: UsageOfScreensResponse, screen: Screen) { + function confirmScreen(usage: UsageInScreensResponse, screen: Screen) { expect(usage.screens.length).toEqual(1) expect(usage.screens[0].url).toEqual(screen.routing.route) expect(usage.screens[0]._id).toEqual(screen._id!) diff --git a/packages/server/src/tests/utilities/api/screen.ts b/packages/server/src/tests/utilities/api/screen.ts index bbbe704a29..8d4c0d9ac4 100644 --- a/packages/server/src/tests/utilities/api/screen.ts +++ b/packages/server/src/tests/utilities/api/screen.ts @@ -1,4 +1,4 @@ -import { Screen, UsageOfScreensResponse } from "@budibase/types" +import { Screen, UsageInScreensResponse } from "@budibase/types" import { Expectations, TestAPI } from "./base" export class ScreenAPI extends TestAPI { @@ -32,8 +32,8 @@ export class ScreenAPI extends TestAPI { usage = async ( sourceId: string, expectations?: Expectations - ): Promise => { - return this._post( + ): Promise => { + return this._post( `/api/screens/usage/${sourceId}`, { expectations, diff --git a/packages/shared-core/src/sdk/documents/screens.ts b/packages/shared-core/src/sdk/documents/screens.ts index 3ceffd26a6..218c6673aa 100644 --- a/packages/shared-core/src/sdk/documents/screens.ts +++ b/packages/shared-core/src/sdk/documents/screens.ts @@ -1,8 +1,8 @@ -import { Screen } from "@budibase/types" +import { Screen, Component } from "@budibase/types" export function findInSettings(screen: Screen, toFind: string) { const foundIn: { setting: string; value: string }[] = [] - function recurse(props: Record, parentKey = "") { + function recurse(props: Component, parentKey = "") { for (const [key, value] of Object.entries(props)) { if (!value) { continue diff --git a/packages/types/src/api/web/app/screen.ts b/packages/types/src/api/web/app/screen.ts index 9fc201d651..2ddac2f19a 100644 --- a/packages/types/src/api/web/app/screen.ts +++ b/packages/types/src/api/web/app/screen.ts @@ -21,8 +21,7 @@ export interface ScreenUsage { _id: string } -export interface UsageOfScreensResponse { +export interface UsageInScreensResponse { sourceType: SourceType - internal: boolean screens: ScreenUsage[] }