Frontend usage of API.

This commit is contained in:
mike12345567 2025-02-03 14:14:08 +00:00
parent be301df399
commit b214019dbe
5 changed files with 21 additions and 10 deletions

View File

@ -2,12 +2,14 @@ import {
DeleteScreenResponse,
SaveScreenRequest,
SaveScreenResponse,
UsageOfScreensResponse,
} from "@budibase/types"
import { BaseAPIClient } from "./types"
export interface ScreenEndpoints {
saveScreen: (screen: SaveScreenRequest) => Promise<SaveScreenResponse>
deleteScreen: (id: string, rev: string) => Promise<DeleteScreenResponse>
usageOfScreens: (sourceId: string) => Promise<UsageOfScreensResponse>
}
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}`,
})
},
})

View File

@ -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<void, UsageScreenResponse>) {
export async function usage(ctx: UserCtx<void, UsageOfScreensResponse>) {
const sourceId = ctx.params.sourceId
const sourceType = sdk.common.getSourceType(sourceId)
const allScreens = await sdk.screens.fetch()

View File

@ -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!)

View File

@ -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<UsageScreenResponse> => {
return this._post<UsageScreenResponse>(`/api/screens/usage/${sourceId}`, {
expectations,
})
): Promise<UsageOfScreensResponse> => {
return this._post<UsageOfScreensResponse>(
`/api/screens/usage/${sourceId}`,
{
expectations,
}
)
}
}

View File

@ -21,7 +21,7 @@ export interface ScreenUsage {
_id: string
}
export interface UsageScreenResponse {
export interface UsageOfScreensResponse {
sourceType: SourceType
screens: ScreenUsage[]
}