Role API typing.

This commit is contained in:
mike12345567 2024-12-05 15:56:04 +00:00
parent c0df3e67b3
commit 54c11e33c5
3 changed files with 28 additions and 4 deletions

View File

@ -6,3 +6,4 @@ export * from "./scim"
export * from "./license"
export * from "./oldMigration"
export * from "./email"
export * from "./role"

View File

@ -0,0 +1,17 @@
import { Role } from "../../../documents"
interface GlobalRoleResponse {
roles: Role[]
name: string
version: string
url?: string
}
export interface FetchGlobalRolesResponse
extends Record<string, GlobalRoleResponse> {}
export interface FindGlobalRoleResponse extends GlobalRoleResponse {}
export interface RemoveAppRoleResponse {
message: string
}

View File

@ -6,9 +6,15 @@ import {
tenancy,
} from "@budibase/backend-core"
import sdk from "../../../sdk"
import { Ctx, App } from "@budibase/types"
import {
Ctx,
App,
FetchGlobalRolesResponse,
FindGlobalRoleResponse,
RemoveAppRoleResponse,
} from "@budibase/types"
export async function fetch(ctx: Ctx) {
export async function fetch(ctx: Ctx<void, FetchGlobalRolesResponse>) {
const tenantId = ctx.user!.tenantId
// always use the dev apps as they'll be most up to date (true)
const apps = (await dbCore.getAllApps({ tenantId, all: true })) as App[]
@ -31,7 +37,7 @@ export async function fetch(ctx: Ctx) {
ctx.body = response
}
export async function find(ctx: Ctx) {
export async function find(ctx: Ctx<void, FindGlobalRoleResponse>) {
const appId = ctx.params.appId
await context.doInAppContext(dbCore.getDevAppID(appId), async () => {
const db = context.getAppDB()
@ -45,7 +51,7 @@ export async function find(ctx: Ctx) {
})
}
export async function removeAppRole(ctx: Ctx) {
export async function removeAppRole(ctx: Ctx<void, RemoveAppRoleResponse>) {
const { appId } = ctx.params
const db = tenancy.getGlobalDB()
const users = await sdk.users.db.allUsers()