From 940da62b980c1712142fe9ed91f95aa5fe08e5af Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Fri, 14 Jul 2023 18:14:53 +0200 Subject: [PATCH 1/3] Clean --- packages/server/src/api/controllers/row/internal.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/server/src/api/controllers/row/internal.ts b/packages/server/src/api/controllers/row/internal.ts index 9808e93dfb..a69aabd3c2 100644 --- a/packages/server/src/api/controllers/row/internal.ts +++ b/packages/server/src/api/controllers/row/internal.ts @@ -2,7 +2,6 @@ import * as linkRows from "../../../db/linkedRows" import { generateRowID, getTableIDFromRowID, - DocumentType, InternalTables, } from "../../../db/utils" import * as userController from "../user" @@ -13,14 +12,6 @@ import { } from "../../../utilities/rowProcessor" import { FieldTypes } from "../../../constants" import * as utils from "./utils" -import * as inMemoryViews from "../../../db/inMemoryView" -import env from "../../../environment" -import { - migrateToInMemoryView, - migrateToDesignView, - getFromDesignDoc, - getFromMemoryDoc, -} from "../view/utils" import { cloneDeep } from "lodash/fp" import { context, db as dbCore } from "@budibase/backend-core" import { finaliseRow, updateRelatedFormula } from "./staticFormula" From 77b3547af74635d87b1d9d2943167fdd676ddb2a Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 17 Jul 2023 09:53:15 +0200 Subject: [PATCH 2/3] Remove usercontroller dependency from internal --- packages/server/src/api/controllers/user.ts | 16 +--------------- .../src/sdk/app/rows/search/internal.ts | 13 ++++++------- packages/server/src/sdk/users/utils.ts | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/packages/server/src/api/controllers/user.ts b/packages/server/src/api/controllers/user.ts index d4b3fe7a02..82a776e9a6 100644 --- a/packages/server/src/api/controllers/user.ts +++ b/packages/server/src/api/controllers/user.ts @@ -7,21 +7,7 @@ import { Ctx, UserCtx } from "@budibase/types" import sdk from "../../sdk" export async function fetchMetadata(ctx: Ctx) { - const global = await getGlobalUsers() - const metadata = await sdk.users.rawUserMetadata() - const users = [] - for (let user of global) { - // find the metadata that matches up to the global ID - const info = metadata.find(meta => meta._id.includes(user._id)) - // remove these props, not for the correct DB - users.push({ - ...user, - ...info, - tableId: InternalTables.USER_METADATA, - // make sure the ID is always a local ID, not a global one - _id: generateUserMetadataID(user._id), - }) - } + const users = await sdk.users.fetchMetadata() ctx.body = users } diff --git a/packages/server/src/sdk/app/rows/search/internal.ts b/packages/server/src/sdk/app/rows/search/internal.ts index f79bb691dd..f4529888a3 100644 --- a/packages/server/src/sdk/app/rows/search/internal.ts +++ b/packages/server/src/sdk/app/rows/search/internal.ts @@ -8,7 +8,7 @@ import { } from "../../../../db/utils" import { getGlobalUsersFromMetadata } from "../../../../utilities/global" import { outputProcessing } from "../../../../utilities/rowProcessor" -import { Ctx, Database, Row, UserCtx } from "@budibase/types" +import { Ctx, Database, Row } from "@budibase/types" import { cleanExportRows } from "../utils" import { Format, @@ -17,7 +17,6 @@ import { jsonWithSchema, } from "../../../../api/controllers/view/exporters" import { apiFileReturn } from "../../../../utilities/fileSystem" -import * as userController from "../../../../api/controllers/user" import * as inMemoryViews from "../../../../db/inMemoryView" import { migrateToInMemoryView, @@ -25,6 +24,7 @@ import { getFromDesignDoc, getFromMemoryDoc, } from "../../../../api/controllers/view/utils" +import sdk from "src/sdk" export async function search(ctx: Ctx) { // Fetch the whole table when running in cypress, as search doesn't work @@ -126,15 +126,14 @@ export async function fetch(ctx: Ctx) { const tableId = ctx.params.tableId let table = await db.get(tableId) - let rows = await getRawTableData(ctx, db, tableId) + let rows = await getRawTableData(db, tableId) return outputProcessing(table, rows) } -async function getRawTableData(ctx: Ctx, db: Database, tableId: string) { +async function getRawTableData(db: Database, tableId: string) { let rows if (tableId === InternalTables.USER_METADATA) { - await userController.fetchMetadata(ctx) - rows = ctx.body + rows = await sdk.users.fetchMetadata() } else { const response = await db.allDocs( getRowParams(tableId, null, { @@ -166,7 +165,7 @@ export async function fetchView(ctx: Ctx) { }) } else { const tableId = viewInfo.meta.tableId - const data = await getRawTableData(ctx, db, tableId) + const data = await getRawTableData(db, tableId) response = await inMemoryViews.runView( viewInfo, calculation as string, diff --git a/packages/server/src/sdk/users/utils.ts b/packages/server/src/sdk/users/utils.ts index 619a7199cd..08084caad1 100644 --- a/packages/server/src/sdk/users/utils.ts +++ b/packages/server/src/sdk/users/utils.ts @@ -64,6 +64,25 @@ export async function rawUserMetadata(db?: Database) { ).rows.map(row => row.doc) } +export async function fetchMetadata() { + const global = await getGlobalUsers() + const metadata = await rawUserMetadata() + const users = [] + for (let user of global) { + // find the metadata that matches up to the global ID + const info = metadata.find(meta => meta._id.includes(user._id)) + // remove these props, not for the correct DB + users.push({ + ...user, + ...info, + tableId: InternalTables.USER_METADATA, + // make sure the ID is always a local ID, not a global one + _id: generateUserMetadataID(user._id), + }) + } + return users +} + export async function syncGlobalUsers() { // sync user metadata const dbs = [context.getDevAppDB(), context.getProdAppDB()] From 81c6eab05ef433f61e8e87e0acbf98a6e0f4d8ae Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 17 Jul 2023 11:05:27 +0200 Subject: [PATCH 3/3] Fix references --- packages/server/src/sdk/app/rows/search/internal.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/sdk/app/rows/search/internal.ts b/packages/server/src/sdk/app/rows/search/internal.ts index f4529888a3..6545761283 100644 --- a/packages/server/src/sdk/app/rows/search/internal.ts +++ b/packages/server/src/sdk/app/rows/search/internal.ts @@ -24,7 +24,7 @@ import { getFromDesignDoc, getFromMemoryDoc, } from "../../../../api/controllers/view/utils" -import sdk from "src/sdk" +import sdk from "../../../../sdk" export async function search(ctx: Ctx) { // Fetch the whole table when running in cypress, as search doesn't work