42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
const { getAllRoles } = require("@budibase/auth/roles")
|
|
const {
|
|
getAllApps,
|
|
getDeployedAppID,
|
|
DocumentTypes,
|
|
} = require("@budibase/auth/db")
|
|
const CouchDB = require("../../../db")
|
|
|
|
exports.fetch = async ctx => {
|
|
// always use the dev apps as they'll be most up to date (true)
|
|
const apps = await getAllApps({ CouchDB, all: true })
|
|
const promises = []
|
|
for (let app of apps) {
|
|
// use dev app IDs
|
|
promises.push(getAllRoles(app.appId))
|
|
}
|
|
const roles = await Promise.all(promises)
|
|
const response = {}
|
|
for (let app of apps) {
|
|
const deployedAppId = getDeployedAppID(app.appId)
|
|
response[deployedAppId] = {
|
|
roles: roles.shift(),
|
|
name: app.name,
|
|
version: app.version,
|
|
url: app.url,
|
|
}
|
|
}
|
|
ctx.body = response
|
|
}
|
|
|
|
exports.find = async ctx => {
|
|
const appId = ctx.params.appId
|
|
const db = new CouchDB(appId)
|
|
const app = await db.get(DocumentTypes.APP_METADATA)
|
|
ctx.body = {
|
|
roles: await getAllRoles(appId),
|
|
name: app.name,
|
|
version: app.version,
|
|
url: app.url,
|
|
}
|
|
}
|