Frontend usage of API.
This commit is contained in:
parent
be301df399
commit
b214019dbe
|
@ -2,12 +2,14 @@ import {
|
||||||
DeleteScreenResponse,
|
DeleteScreenResponse,
|
||||||
SaveScreenRequest,
|
SaveScreenRequest,
|
||||||
SaveScreenResponse,
|
SaveScreenResponse,
|
||||||
|
UsageOfScreensResponse,
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
import { BaseAPIClient } from "./types"
|
import { BaseAPIClient } from "./types"
|
||||||
|
|
||||||
export interface ScreenEndpoints {
|
export interface ScreenEndpoints {
|
||||||
saveScreen: (screen: SaveScreenRequest) => Promise<SaveScreenResponse>
|
saveScreen: (screen: SaveScreenRequest) => Promise<SaveScreenResponse>
|
||||||
deleteScreen: (id: string, rev: string) => Promise<DeleteScreenResponse>
|
deleteScreen: (id: string, rev: string) => Promise<DeleteScreenResponse>
|
||||||
|
usageOfScreens: (sourceId: string) => Promise<UsageOfScreensResponse>
|
||||||
}
|
}
|
||||||
|
|
||||||
export const buildScreenEndpoints = (API: BaseAPIClient): ScreenEndpoints => ({
|
export const buildScreenEndpoints = (API: BaseAPIClient): ScreenEndpoints => ({
|
||||||
|
@ -32,4 +34,10 @@ export const buildScreenEndpoints = (API: BaseAPIClient): ScreenEndpoints => ({
|
||||||
url: `/api/screens/${id}/${rev}`,
|
url: `/api/screens/${id}/${rev}`,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
usageOfScreens: async sourceId => {
|
||||||
|
return await API.post({
|
||||||
|
url: `/api/screens/usage/${sourceId}`,
|
||||||
|
})
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -16,7 +16,7 @@ import {
|
||||||
SaveScreenRequest,
|
SaveScreenRequest,
|
||||||
SaveScreenResponse,
|
SaveScreenResponse,
|
||||||
DeleteScreenResponse,
|
DeleteScreenResponse,
|
||||||
UsageScreenResponse,
|
UsageOfScreensResponse,
|
||||||
ScreenUsage,
|
ScreenUsage,
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
import { builderSocket } from "../../websockets"
|
import { builderSocket } from "../../websockets"
|
||||||
|
@ -137,7 +137,7 @@ function findPlugins(component: ScreenProps, foundPlugins: string[]) {
|
||||||
component._children.forEach(child => findPlugins(child, foundPlugins))
|
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 sourceId = ctx.params.sourceId
|
||||||
const sourceType = sdk.common.getSourceType(sourceId)
|
const sourceType = sdk.common.getSourceType(sourceId)
|
||||||
const allScreens = await sdk.screens.fetch()
|
const allScreens = await sdk.screens.fetch()
|
||||||
|
|
|
@ -6,7 +6,7 @@ import {
|
||||||
Role,
|
Role,
|
||||||
BuiltinPermissionID,
|
BuiltinPermissionID,
|
||||||
SourceType,
|
SourceType,
|
||||||
UsageScreenResponse,
|
UsageOfScreensResponse,
|
||||||
} from "@budibase/types"
|
} from "@budibase/types"
|
||||||
|
|
||||||
const {
|
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.length).toEqual(1)
|
||||||
expect(usage.screens[0].url).toEqual(screen.routing.route)
|
expect(usage.screens[0].url).toEqual(screen.routing.route)
|
||||||
expect(usage.screens[0]._id).toEqual(screen._id!)
|
expect(usage.screens[0]._id).toEqual(screen._id!)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Screen, UsageScreenResponse } from "@budibase/types"
|
import { Screen, UsageOfScreensResponse } from "@budibase/types"
|
||||||
import { Expectations, TestAPI } from "./base"
|
import { Expectations, TestAPI } from "./base"
|
||||||
|
|
||||||
export class ScreenAPI extends TestAPI {
|
export class ScreenAPI extends TestAPI {
|
||||||
|
@ -32,9 +32,12 @@ export class ScreenAPI extends TestAPI {
|
||||||
usage = async (
|
usage = async (
|
||||||
sourceId: string,
|
sourceId: string,
|
||||||
expectations?: Expectations
|
expectations?: Expectations
|
||||||
): Promise<UsageScreenResponse> => {
|
): Promise<UsageOfScreensResponse> => {
|
||||||
return this._post<UsageScreenResponse>(`/api/screens/usage/${sourceId}`, {
|
return this._post<UsageOfScreensResponse>(
|
||||||
expectations,
|
`/api/screens/usage/${sourceId}`,
|
||||||
})
|
{
|
||||||
|
expectations,
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ export interface ScreenUsage {
|
||||||
_id: string
|
_id: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface UsageScreenResponse {
|
export interface UsageOfScreensResponse {
|
||||||
sourceType: SourceType
|
sourceType: SourceType
|
||||||
screens: ScreenUsage[]
|
screens: ScreenUsage[]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue