From b214019dbe53049cffdf3c9d08b3410160f8c90e Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 3 Feb 2025 14:14:08 +0000 Subject: [PATCH] Frontend usage of API. --- packages/frontend-core/src/api/screens.ts | 8 ++++++++ packages/server/src/api/controllers/screen.ts | 4 ++-- packages/server/src/api/routes/tests/screen.spec.ts | 4 ++-- packages/server/src/tests/utilities/api/screen.ts | 13 ++++++++----- packages/types/src/api/web/app/screen.ts | 2 +- 5 files changed, 21 insertions(+), 10 deletions(-) diff --git a/packages/frontend-core/src/api/screens.ts b/packages/frontend-core/src/api/screens.ts index bdb01e1427..8147db738d 100644 --- a/packages/frontend-core/src/api/screens.ts +++ b/packages/frontend-core/src/api/screens.ts @@ -2,12 +2,14 @@ import { DeleteScreenResponse, SaveScreenRequest, SaveScreenResponse, + UsageOfScreensResponse, } from "@budibase/types" import { BaseAPIClient } from "./types" export interface ScreenEndpoints { saveScreen: (screen: SaveScreenRequest) => Promise deleteScreen: (id: string, rev: string) => Promise + usageOfScreens: (sourceId: string) => Promise } export const buildScreenEndpoints = (API: BaseAPIClient): ScreenEndpoints => ({ @@ -32,4 +34,10 @@ export const buildScreenEndpoints = (API: BaseAPIClient): ScreenEndpoints => ({ url: `/api/screens/${id}/${rev}`, }) }, + + usageOfScreens: 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 93a70d5e36..1bf800691c 100644 --- a/packages/server/src/api/controllers/screen.ts +++ b/packages/server/src/api/controllers/screen.ts @@ -16,7 +16,7 @@ import { SaveScreenRequest, SaveScreenResponse, DeleteScreenResponse, - UsageScreenResponse, + UsageOfScreensResponse, ScreenUsage, } from "@budibase/types" import { builderSocket } from "../../websockets" @@ -137,7 +137,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() diff --git a/packages/server/src/api/routes/tests/screen.spec.ts b/packages/server/src/api/routes/tests/screen.spec.ts index 610c07f36a..90ec4a567f 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, - UsageScreenResponse, + UsageOfScreensResponse, } from "@budibase/types" const { @@ -210,7 +210,7 @@ describe("/screens", () => { }) }) - function confirmScreen(usage: UsageScreenResponse, screen: Screen) { + function confirmScreen(usage: UsageOfScreensResponse, 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 7f7f73fb84..bbbe704a29 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, UsageScreenResponse } from "@budibase/types" +import { Screen, UsageOfScreensResponse } from "@budibase/types" import { Expectations, TestAPI } from "./base" export class ScreenAPI extends TestAPI { @@ -32,9 +32,12 @@ export class ScreenAPI extends TestAPI { usage = async ( sourceId: string, expectations?: Expectations - ): Promise => { - return this._post(`/api/screens/usage/${sourceId}`, { - expectations, - }) + ): Promise => { + return this._post( + `/api/screens/usage/${sourceId}`, + { + expectations, + } + ) } } diff --git a/packages/types/src/api/web/app/screen.ts b/packages/types/src/api/web/app/screen.ts index 280c623216..0550c5206a 100644 --- a/packages/types/src/api/web/app/screen.ts +++ b/packages/types/src/api/web/app/screen.ts @@ -21,7 +21,7 @@ export interface ScreenUsage { _id: string } -export interface UsageScreenResponse { +export interface UsageOfScreensResponse { sourceType: SourceType screens: ScreenUsage[] }