Final renames
This commit is contained in:
parent
b69462680d
commit
6ba7317c7a
|
@ -214,9 +214,9 @@ export const getOAuth2ConfigParams = (
|
|||
/**
|
||||
* Gets parameters for retrieving project apps, this is a utility function for the getDocParams function.
|
||||
*/
|
||||
export const getProjectAppParams = (
|
||||
projectAppId?: string | null,
|
||||
export const getWorkspaceAppParams = (
|
||||
workspaceAppId?: string | null,
|
||||
otherProps: Partial<DatabaseQueryOpts> = {}
|
||||
) => {
|
||||
return getDocParams(DocumentType.WORKSPACE_APP, projectAppId, otherProps)
|
||||
return getDocParams(DocumentType.WORKSPACE_APP, workspaceAppId, otherProps)
|
||||
}
|
||||
|
|
|
@ -184,7 +184,7 @@ async function addSampleDataDocs() {
|
|||
|
||||
async function addSampleDataScreen() {
|
||||
const db = context.getAppDB()
|
||||
let projectAppId: string | undefined
|
||||
let workspaceAppId: string | undefined
|
||||
if (await features.isEnabled(FeatureFlag.WORKSPACE_APPS)) {
|
||||
const appMetadata = await sdk.applications.metadata.get()
|
||||
|
||||
|
@ -193,10 +193,10 @@ async function addSampleDataScreen() {
|
|||
urlPrefix: "/",
|
||||
icon: "Monitoring",
|
||||
})
|
||||
projectAppId = workspaceApp._id!
|
||||
workspaceAppId = workspaceApp._id!
|
||||
}
|
||||
|
||||
let screen = await createSampleDataTableScreen(projectAppId)
|
||||
let screen = await createSampleDataTableScreen(workspaceAppId)
|
||||
screen._id = generateScreenID()
|
||||
await db.put(screen)
|
||||
}
|
||||
|
@ -285,7 +285,7 @@ export async function fetchAppPackage(
|
|||
let workspaceApps: FetchAppPackageResponse["workspaceApps"] = []
|
||||
|
||||
if (await features.flags.isEnabled(FeatureFlag.WORKSPACE_APPS)) {
|
||||
workspaceApps = await extractScreensByProjectApp(screens)
|
||||
workspaceApps = await extractScreensByWorkspaceApp(screens)
|
||||
screens = []
|
||||
}
|
||||
|
||||
|
@ -305,20 +305,20 @@ export async function fetchAppPackage(
|
|||
}
|
||||
}
|
||||
|
||||
async function extractScreensByProjectApp(
|
||||
async function extractScreensByWorkspaceApp(
|
||||
screens: Screen[]
|
||||
): Promise<FetchAppPackageResponse["workspaceApps"]> {
|
||||
const result: FetchAppPackageResponse["workspaceApps"] = []
|
||||
|
||||
const workspaceApps = await sdk.workspaceApps.fetch()
|
||||
|
||||
const screensByProjectApp = groupBy(s => s.projectAppId, screens)
|
||||
for (const projectAppId of Object.keys(screensByProjectApp)) {
|
||||
const workspaceApp = workspaceApps.find(p => p._id === projectAppId)
|
||||
const screensByWorkspaceApp = groupBy(s => s.workspaceAppId, screens)
|
||||
for (const workspaceAppId of Object.keys(screensByWorkspaceApp)) {
|
||||
const workspaceApp = workspaceApps.find(p => p._id === workspaceAppId)
|
||||
|
||||
result.push({
|
||||
...workspaceApp!,
|
||||
screens: screensByProjectApp[projectAppId],
|
||||
screens: screensByWorkspaceApp[workspaceAppId],
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
import {
|
||||
Ctx,
|
||||
InsertProjectAppRequest,
|
||||
InsertProjectAppResponse,
|
||||
InsertWorkspaceAppRequest,
|
||||
InsertWorkspaceAppResponse,
|
||||
WorkspaceApp,
|
||||
ProjectAppResponse,
|
||||
UpdateProjectAppRequest,
|
||||
UpdateProjectAppResponse,
|
||||
WorkspaceAppResponse,
|
||||
UpdateWorkspaceAppRequest,
|
||||
UpdateWorkspaceAppResponse,
|
||||
} from "@budibase/types"
|
||||
import sdk from "../../sdk"
|
||||
|
||||
function toProjectAppResponse(workspaceApp: WorkspaceApp): ProjectAppResponse {
|
||||
function toWorkspaceAppResponse(
|
||||
workspaceApp: WorkspaceApp
|
||||
): WorkspaceAppResponse {
|
||||
return {
|
||||
_id: workspaceApp._id!,
|
||||
_rev: workspaceApp._rev!,
|
||||
|
@ -21,25 +23,25 @@ function toProjectAppResponse(workspaceApp: WorkspaceApp): ProjectAppResponse {
|
|||
}
|
||||
|
||||
export async function create(
|
||||
ctx: Ctx<InsertProjectAppRequest, InsertProjectAppResponse>
|
||||
ctx: Ctx<InsertWorkspaceAppRequest, InsertWorkspaceAppResponse>
|
||||
) {
|
||||
const { body } = ctx.request
|
||||
const newProjectApp = {
|
||||
const newWorkspaceApp = {
|
||||
name: body.name,
|
||||
urlPrefix: body.urlPrefix,
|
||||
icon: body.icon,
|
||||
iconColor: body.iconColor,
|
||||
}
|
||||
|
||||
const workspaceApp = await sdk.workspaceApps.create(newProjectApp)
|
||||
const workspaceApp = await sdk.workspaceApps.create(newWorkspaceApp)
|
||||
ctx.status = 201
|
||||
ctx.body = {
|
||||
workspaceApp: toProjectAppResponse(workspaceApp),
|
||||
workspaceApp: toWorkspaceAppResponse(workspaceApp),
|
||||
}
|
||||
}
|
||||
|
||||
export async function edit(
|
||||
ctx: Ctx<UpdateProjectAppRequest, UpdateProjectAppResponse>
|
||||
ctx: Ctx<UpdateWorkspaceAppRequest, UpdateWorkspaceAppResponse>
|
||||
) {
|
||||
const { body } = ctx.request
|
||||
|
||||
|
@ -58,7 +60,7 @@ export async function edit(
|
|||
|
||||
const workspaceApp = await sdk.workspaceApps.update(toUpdate)
|
||||
ctx.body = {
|
||||
workspaceApp: toProjectAppResponse(workspaceApp),
|
||||
workspaceApp: toWorkspaceAppResponse(workspaceApp),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ const updateSchema = Joi.object({
|
|||
...baseSchema,
|
||||
})
|
||||
|
||||
function projectAppValidator(
|
||||
function workspaceAppValidator(
|
||||
schema: typeof insertSchema | typeof updateSchema
|
||||
) {
|
||||
return middleware.joiValidator.body(schema, { allowUnknown: false })
|
||||
|
@ -34,13 +34,13 @@ const router: Router = new Router()
|
|||
router.post(
|
||||
"/api/workspaceApp",
|
||||
authorized(PermissionType.BUILDER),
|
||||
projectAppValidator(insertSchema),
|
||||
workspaceAppValidator(insertSchema),
|
||||
controller.create
|
||||
)
|
||||
router.put(
|
||||
"/api/workspaceApp/:id",
|
||||
authorized(PermissionType.BUILDER),
|
||||
projectAppValidator(updateSchema),
|
||||
workspaceAppValidator(updateSchema),
|
||||
controller.edit
|
||||
)
|
||||
router.delete(
|
||||
|
|
|
@ -6,24 +6,26 @@ const migration = async () => {
|
|||
const screens = await sdk.screens.fetch()
|
||||
|
||||
const application = await sdk.applications.metadata.get()
|
||||
const allProjectApps = await sdk.workspaceApps.fetch()
|
||||
let projectAppId = allProjectApps.find(p => p.name === application.name)?._id
|
||||
if (!projectAppId) {
|
||||
const allWorkspaceApps = await sdk.workspaceApps.fetch()
|
||||
let workspaceAppId = allWorkspaceApps.find(
|
||||
p => p.name === application.name
|
||||
)?._id
|
||||
if (!workspaceAppId) {
|
||||
const workspaceApp = await sdk.workspaceApps.create({
|
||||
name: application.name,
|
||||
urlPrefix: "/",
|
||||
icon: "Monitoring",
|
||||
})
|
||||
projectAppId = workspaceApp._id
|
||||
workspaceAppId = workspaceApp._id
|
||||
}
|
||||
|
||||
const db = context.getAppDB()
|
||||
await db.bulkDocs(
|
||||
screens
|
||||
.filter(s => !s.projectAppId)
|
||||
.filter(s => !s.workspaceAppId)
|
||||
.map<Screen>(s => ({
|
||||
...s,
|
||||
projectAppId,
|
||||
workspaceAppId,
|
||||
}))
|
||||
)
|
||||
}
|
||||
|
|
|
@ -3,14 +3,14 @@ import { Screen } from "@budibase/types"
|
|||
export const SAMPLE_DATA_SCREEN_NAME = "sample-data-inventory-screen"
|
||||
|
||||
export function createSampleDataTableScreen(
|
||||
projectAppId: string | undefined
|
||||
workspaceAppId: string | undefined
|
||||
): Screen {
|
||||
return {
|
||||
showNavigation: true,
|
||||
width: "Large",
|
||||
routing: { route: "/inventory", roleId: "BASIC", homeScreen: false },
|
||||
name: SAMPLE_DATA_SCREEN_NAME,
|
||||
projectAppId,
|
||||
workspaceAppId,
|
||||
props: {
|
||||
_id: "c38f2b9f250fb4c33965ce47e12c02a80",
|
||||
_component: "@budibase/standard-components/container",
|
||||
|
|
|
@ -7,9 +7,9 @@ import {
|
|||
} from "@budibase/types"
|
||||
|
||||
async function guardName(name: string, id?: string) {
|
||||
const existingProjectApps = await fetch()
|
||||
const existingWorkspaceApps = await fetch()
|
||||
|
||||
if (existingProjectApps.find(p => p.name === name && p._id !== id)) {
|
||||
if (existingWorkspaceApps.find(p => p.name === name && p._id !== id)) {
|
||||
throw new HTTPError(`App with name '${name}' is already taken.`, 400)
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ async function guardName(name: string, id?: string) {
|
|||
export async function fetch(): Promise<WorkspaceApp[]> {
|
||||
const db = context.getAppDB()
|
||||
const docs = await db.allDocs<WorkspaceApp>(
|
||||
docIds.getProjectAppParams(null, { include_docs: true })
|
||||
docIds.getWorkspaceAppParams(null, { include_docs: true })
|
||||
)
|
||||
const result = docs.rows.map(r => ({
|
||||
...r.doc!,
|
||||
|
@ -65,16 +65,16 @@ export async function update(
|
|||
}
|
||||
|
||||
export async function remove(
|
||||
projectAppId: string,
|
||||
workspaceAppId: string,
|
||||
_rev: string
|
||||
): Promise<void> {
|
||||
const db = context.getAppDB()
|
||||
try {
|
||||
await db.remove(projectAppId, _rev)
|
||||
await db.remove(workspaceAppId, _rev)
|
||||
} catch (e: any) {
|
||||
if (e.status === 404) {
|
||||
throw new HTTPError(
|
||||
`Project app with id '${projectAppId}' not found.`,
|
||||
`Project app with id '${workspaceAppId}' not found.`,
|
||||
404
|
||||
)
|
||||
}
|
||||
|
|
|
@ -587,7 +587,7 @@ function createHomeScreen(
|
|||
roleId: config.roleId,
|
||||
},
|
||||
name: "home-screen",
|
||||
projectAppId: "projectAppId",
|
||||
workspaceAppId: "workspaceAppId",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ export function createTableScreen(
|
|||
homeScreen: false,
|
||||
},
|
||||
name: "screen-id",
|
||||
projectAppId: "projectAppId",
|
||||
workspaceAppId: "workspaceAppId",
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ export function createViewScreen(view: ViewV2): Screen {
|
|||
homeScreen: false,
|
||||
},
|
||||
name: "view-id",
|
||||
projectAppId: "projectAppId",
|
||||
workspaceAppId: "workspaceAppId",
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -173,6 +173,6 @@ export function createQueryScreen(datasourceId: string, query: Query): Screen {
|
|||
homeScreen: false,
|
||||
},
|
||||
name: "screen-id",
|
||||
projectAppId: "projectAppId",
|
||||
workspaceAppId: "workspaceAppId",
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ export interface FetchAppDefinitionResponse {
|
|||
libraries: string[]
|
||||
}
|
||||
|
||||
interface ProjectAppResponse extends WorkspaceApp {
|
||||
interface WorkspaceAppResponse extends WorkspaceApp {
|
||||
screens: Screen[]
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ export interface FetchAppPackageResponse {
|
|||
application: App
|
||||
licenseType: PlanType
|
||||
screens: Screen[]
|
||||
workspaceApps: ProjectAppResponse[]
|
||||
workspaceApps: WorkspaceAppResponse[]
|
||||
layouts: Layout[]
|
||||
clientLibPath: string
|
||||
hasLock: boolean
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
export interface ProjectAppResponse {
|
||||
export interface WorkspaceAppResponse {
|
||||
_id: string
|
||||
_rev: string
|
||||
name: string
|
||||
|
@ -7,18 +7,18 @@ export interface ProjectAppResponse {
|
|||
iconColor?: string
|
||||
}
|
||||
|
||||
export interface InsertProjectAppRequest {
|
||||
export interface InsertWorkspaceAppRequest {
|
||||
name: string
|
||||
urlPrefix: string
|
||||
icon: string
|
||||
iconColor: string
|
||||
}
|
||||
|
||||
export interface InsertProjectAppResponse {
|
||||
workspaceApp: ProjectAppResponse
|
||||
export interface InsertWorkspaceAppResponse {
|
||||
workspaceApp: WorkspaceAppResponse
|
||||
}
|
||||
|
||||
export interface UpdateProjectAppRequest {
|
||||
export interface UpdateWorkspaceAppRequest {
|
||||
_id: string
|
||||
_rev: string
|
||||
name: string
|
||||
|
@ -27,6 +27,6 @@ export interface UpdateProjectAppRequest {
|
|||
iconColor: string
|
||||
}
|
||||
|
||||
export interface UpdateProjectAppResponse {
|
||||
workspaceApp: ProjectAppResponse
|
||||
export interface UpdateWorkspaceAppResponse {
|
||||
workspaceApp: WorkspaceAppResponse
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ export interface Screen extends Document {
|
|||
pluginAdded?: boolean
|
||||
onLoad?: EventHandler[]
|
||||
variant?: ScreenVariant
|
||||
projectAppId?: string
|
||||
workspaceAppId?: string
|
||||
}
|
||||
|
||||
export interface ScreenRoutesViewOutput extends Document {
|
||||
|
|
Loading…
Reference in New Issue