From c8f5d32bd39657b027489824bfe431fc3753eac3 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Sun, 2 Jan 2022 14:45:56 +0530 Subject: [PATCH] fix: gql meta sync reinitialize gql endpoint after meta sync Signed-off-by: Pranav C --- .../src/lib/noco/common/BaseApiBuilder.ts | 5 +- .../noco/common/handlers/xcMetaDiffSync.ts | 53 ++++++++++--------- .../nocodb/src/lib/noco/gql/GqlApiBuilder.ts | 2 +- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts b/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts index df5939224a..5c493a1c38 100644 --- a/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts +++ b/packages/nocodb/src/lib/noco/common/BaseApiBuilder.ts @@ -1718,9 +1718,10 @@ export default abstract class BaseApiBuilder // table alias functions protected getInflectedName(_name: string, inflectionFns: string): string { let name = _name; - if (process.env.NC_INFLECTION) + if (process.env.NC_INFLECTION) { inflectionFns = 'camelize'; - + } + if (inflectionFns && inflectionFns !== 'none') { name = inflectionFns .split(',') diff --git a/packages/nocodb/src/lib/noco/common/handlers/xcMetaDiffSync.ts b/packages/nocodb/src/lib/noco/common/handlers/xcMetaDiffSync.ts index c0bfedbd5a..11053165ba 100644 --- a/packages/nocodb/src/lib/noco/common/handlers/xcMetaDiffSync.ts +++ b/packages/nocodb/src/lib/noco/common/handlers/xcMetaDiffSync.ts @@ -4,6 +4,7 @@ import xcMetaDiff, { XcMetaDiffType } from '../../meta/handlers/xcMetaDiff'; import XcCache from '../../plugins/adapters/cache/XcCache'; +import { GqlApiBuilder } from '../../gql/GqlApiBuilder'; // @ts-ignore export default async function(this: BaseApiBuilder | any) { @@ -198,11 +199,11 @@ export default async function(this: BaseApiBuilder | any) { /* update sort field */ /* const sIndex = (sortList || []).findIndex( - v => v.field === oldColumn._cn - ); - if (sIndex > -1) { - sortList.splice(sIndex, 1); - }*/ + v => v.field === oldColumn._cn + ); + if (sIndex > -1) { + sortList.splice(sIndex, 1); + }*/ for (const sort of sortList || []) { if ( sort?.field === oldColumn.cn || @@ -220,12 +221,12 @@ export default async function(this: BaseApiBuilder | any) { /* update filters */ // todo: remove only corresponding filter and compare field name /* if ( - filters && - (JSON.stringify(filters)?.includes(`"${oldColumn.cn}"`) || - JSON.stringify(filters)?.includes(`"${oldColumn._cn}"`)) - ) { - filters.splice(0, filters.length); - }*/ + filters && + (JSON.stringify(filters)?.includes(`"${oldColumn.cn}"`) || + JSON.stringify(filters)?.includes(`"${oldColumn._cn}"`)) + ) { + filters.splice(0, filters.length); + }*/ for (const filter of filters) { if ( filter?.field === oldColumn.cn || @@ -319,8 +320,8 @@ export default async function(this: BaseApiBuilder | any) { db_type: this.connectionConfig?.client // todo: get these info /* dr: , - ur: onUpdate, - fkn*/ + ur: onUpdate, + fkn*/ } ); populateParams.tableNames.push({ tn: change.tn }); @@ -647,11 +648,11 @@ export default async function(this: BaseApiBuilder | any) { /* update sort field */ /* const sIndex = (sortList || []).findIndex( - v => v.field === oldColumn._cn - ); - if (sIndex > -1) { - sortList.splice(sIndex, 1); - }*/ + v => v.field === oldColumn._cn + ); + if (sIndex > -1) { + sortList.splice(sIndex, 1); + }*/ for (const sort of sortList || []) { if ( sort?.field === oldColumn.cn || @@ -669,12 +670,12 @@ export default async function(this: BaseApiBuilder | any) { /* update filters */ // todo: remove only corresponding filter and compare field name /* if ( - filters && - (JSON.stringify(filters)?.includes(`"${oldColumn.cn}"`) || - JSON.stringify(filters)?.includes(`"${oldColumn._cn}"`)) - ) { - filters.splice(0, filters.length); - }*/ + filters && + (JSON.stringify(filters)?.includes(`"${oldColumn.cn}"`) || + JSON.stringify(filters)?.includes(`"${oldColumn._cn}"`)) + ) { + filters.splice(0, filters.length); + }*/ for (const filter of filters) { if ( filter?.field === oldColumn.cn || @@ -769,6 +770,10 @@ export default async function(this: BaseApiBuilder | any) { await this.xcTablesPopulate(populateParams); await this.xcTablesPopulate(populateViewsParams); + if (this instanceof GqlApiBuilder) { + await (this as GqlApiBuilder).reInitializeGraphqlEndpoint(); + } + return populateParams; } diff --git a/packages/nocodb/src/lib/noco/gql/GqlApiBuilder.ts b/packages/nocodb/src/lib/noco/gql/GqlApiBuilder.ts index 661333ea9d..e44352673f 100644 --- a/packages/nocodb/src/lib/noco/gql/GqlApiBuilder.ts +++ b/packages/nocodb/src/lib/noco/gql/GqlApiBuilder.ts @@ -2607,7 +2607,7 @@ export class GqlApiBuilder extends BaseApiBuilder implements XcMetaMgr { await this.reInitializeGraphqlEndpoint(); } - private async reInitializeGraphqlEndpoint(): Promise { + async reInitializeGraphqlEndpoint(): Promise { this.log( `reInitializeGraphqlEndpoint : Reinitializing graphql router endpoint` );