From 70891e74e5d452d2063f2fe99524d0f50d37755d Mon Sep 17 00:00:00 2001 From: Pranav C Date: Mon, 23 Oct 2023 19:46:38 +0530 Subject: [PATCH 1/2] refactor: exclude nested params for system fields Signed-off-by: Pranav C --- .../nocodb/src/services/api-docs/swagger/templates/params.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/nocodb/src/services/api-docs/swagger/templates/params.ts b/packages/nocodb/src/services/api-docs/swagger/templates/params.ts index 80701928fe..65c466a3d5 100644 --- a/packages/nocodb/src/services/api-docs/swagger/templates/params.ts +++ b/packages/nocodb/src/services/api-docs/swagger/templates/params.ts @@ -197,6 +197,10 @@ export const getNestedParams = async ( ): Promise => { return await columns.reduce(async (paramsArr, { column }) => { if (column.uidt === UITypes.LinkToAnotherRecord) { + // exclude system columns(relations to junction table) + if (column.system) { + return paramsArr; + } const colOpt = await column.getColOptions(); if (colOpt.type !== RelationTypes.BELONGS_TO) { return [ From e413c363d956c4d6d5bdd207d96c9cd2f6a8dd98 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Mon, 23 Oct 2023 19:52:34 +0530 Subject: [PATCH 2/2] refactor: swagger schema correction - use array if it's hm/mm relation Signed-off-by: Pranav C --- .../api-docs/swagger/getSwaggerColumnMetas.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/nocodb/src/services/api-docs/swagger/getSwaggerColumnMetas.ts b/packages/nocodb/src/services/api-docs/swagger/getSwaggerColumnMetas.ts index 660c1d45be..dd5967d56a 100644 --- a/packages/nocodb/src/services/api-docs/swagger/getSwaggerColumnMetas.ts +++ b/packages/nocodb/src/services/api-docs/swagger/getSwaggerColumnMetas.ts @@ -1,4 +1,4 @@ -import { UITypes } from 'nocodb-sdk'; +import { RelationTypes, UITypes } from 'nocodb-sdk'; import type { Base, Column, LinkToAnotherRecordColumn } from '~/models'; import SwaggerTypes from '~/db/sql-mgr/code/routers/xc-ts/SwaggerTypes'; import Noco from '~/Noco'; @@ -26,8 +26,15 @@ export default async ( ); if (colOpt) { const relTable = await colOpt.getRelatedTable(ncMeta); - field.type = undefined; - field.$ref = `#/components/schemas/${relTable.title}Request`; + if (colOpt.type === RelationTypes.BELONGS_TO) { + field.type = undefined; + field.$ref = `#/components/schemas/${relTable.title}Request`; + } else { + field.type = 'array'; + field.items = { + $ref: `#/components/schemas/${relTable.title}Request`, + }; + } } } break;