Browse Source

chore: lint

Signed-off-by: Pranav C <pranavxc@gmail.com>
pull/5444/head
Pranav C 1 year ago
parent
commit
b9bd6023c7
  1. 11
      packages/nocodb-nest/src/app.module.ts
  2. 8
      packages/nocodb-nest/src/db/BaseModelSqlv2.ts
  3. 1
      packages/nocodb-nest/src/db/CustomKnex.ts
  4. 2
      packages/nocodb-nest/src/init.ts
  5. 2
      packages/nocodb-nest/src/main.ts
  6. 5
      packages/nocodb-nest/src/meta/meta.service.ts
  7. 9
      packages/nocodb-nest/src/middlewares/gui/gui.middleware.ts
  8. 172
      packages/nocodb-nest/src/models/Model.ts
  9. 7
      packages/nocodb-nest/src/modules/api-tokens/api-tokens.controller.ts
  10. 2
      packages/nocodb-nest/src/modules/api-tokens/api-tokens.service.ts
  11. 6
      packages/nocodb-nest/src/modules/attachments/attachments.controller.ts
  12. 7
      packages/nocodb-nest/src/modules/audits/audits.controller.ts
  13. 7
      packages/nocodb-nest/src/modules/auth/auth.controller.ts
  14. 5
      packages/nocodb-nest/src/modules/auth/auth.module.ts
  15. 4
      packages/nocodb-nest/src/modules/auth/auth.service.ts
  16. 7
      packages/nocodb-nest/src/modules/bases/bases.controller.ts
  17. 5
      packages/nocodb-nest/src/modules/columns/columns.controller.ts
  18. 4
      packages/nocodb-nest/src/modules/datas/bulk-data-alias/bulk-data-alias.controller.ts
  19. 2
      packages/nocodb-nest/src/modules/datas/data-alias-export/data-alias-export.controller.ts
  20. 7
      packages/nocodb-nest/src/modules/datas/data-alias-nested/data-alias-nested.controller.ts
  21. 2
      packages/nocodb-nest/src/modules/datas/data-alias.controller.ts
  22. 15
      packages/nocodb-nest/src/modules/datas/datas.controller.ts
  23. 7
      packages/nocodb-nest/src/modules/datas/old-datas/old-datas.controller.ts
  24. 7
      packages/nocodb-nest/src/modules/filters/filters.controller.ts
  25. 2
      packages/nocodb-nest/src/modules/form-columns/form-columns.controller.ts
  26. 9
      packages/nocodb-nest/src/modules/galleries/galleries.controller.ts
  27. 32
      packages/nocodb-nest/src/modules/global/global.module.ts
  28. 2
      packages/nocodb-nest/src/modules/grid-columns/grid-columns.controller.ts
  29. 7
      packages/nocodb-nest/src/modules/hooks/hooks.controller.ts
  30. 2
      packages/nocodb-nest/src/modules/import/import.module.ts
  31. 7
      packages/nocodb-nest/src/modules/maps/maps.controller.ts
  32. 11
      packages/nocodb-nest/src/modules/meta-diffs/meta-diffs.controller.ts
  33. 7
      packages/nocodb-nest/src/modules/model-visibilities/model-visibilities.controller.ts
  34. 2
      packages/nocodb-nest/src/modules/org-tokens/ee/org-tokens/org-tokens-ee.service.ts
  35. 5
      packages/nocodb-nest/src/modules/org-tokens/org-tokens.controller.ts
  36. 2
      packages/nocodb-nest/src/modules/org-tokens/org-tokens.service.ts
  37. 2
      packages/nocodb-nest/src/modules/org-users/org-users.controller.ts
  38. 2
      packages/nocodb-nest/src/modules/org-users/org-users.service.ts
  39. 7
      packages/nocodb-nest/src/modules/project-users/project-users.controller.ts
  40. 7
      packages/nocodb-nest/src/modules/projects/projects.controller.ts
  41. 7
      packages/nocodb-nest/src/modules/shared-bases/shared-bases.controller.ts
  42. 7
      packages/nocodb-nest/src/modules/sorts/sorts.controller.ts
  43. 4
      packages/nocodb-nest/src/modules/sync/helpers/job.ts
  44. 2
      packages/nocodb-nest/src/modules/sync/helpers/readAndProcessData.ts
  45. 15
      packages/nocodb-nest/src/modules/sync/sync.controller.ts
  46. 7
      packages/nocodb-nest/src/modules/tables/tables.controller.ts
  47. 1
      packages/nocodb-nest/src/modules/tables/tables.service.ts
  48. 13
      packages/nocodb-nest/src/modules/test/TestResetService/index.ts
  49. 9
      packages/nocodb-nest/src/modules/test/TestResetService/resetMetaSakilaSqliteProject.ts
  50. 7
      packages/nocodb-nest/src/modules/test/TestResetService/resetPgSakilaProject.ts
  51. 2
      packages/nocodb-nest/src/modules/test/test.controller.ts
  52. 4
      packages/nocodb-nest/src/modules/users/users.module.ts
  53. 5
      packages/nocodb-nest/src/modules/users/users.service.ts
  54. 8
      packages/nocodb-nest/src/modules/utils/utils.controller.ts
  55. 7
      packages/nocodb-nest/src/modules/view-columns/view-columns.controller.ts
  56. 5
      packages/nocodb-nest/src/modules/views/views.controller.ts
  57. 6
      packages/nocodb-nest/src/nocobuild.ts
  58. 3
      packages/nocodb-nest/src/run/docker.ts
  59. 3
      packages/nocodb-nest/src/run/dockerRunMysql.ts
  60. 3
      packages/nocodb-nest/src/run/dockerRunPG.ts
  61. 7
      packages/nocodb-nest/src/run/dockerRunPG_CyQuick.ts
  62. 5
      packages/nocodb-nest/src/run/testDocker.ts
  63. 3
      packages/nocodb-nest/src/services/client/socket.service.spec.ts
  64. 2
      packages/nocodb-nest/src/services/client/socket.service.ts
  65. 3
      packages/nocodb-nest/src/strategies/authtoken.strategy/authtoken.strategy.spec.ts
  66. 10
      packages/nocodb-nest/src/strategies/authtoken.strategy/authtoken.strategy.ts
  67. 3
      packages/nocodb-nest/src/strategies/base-view.strategy/base-view.strategy.spec.ts
  68. 6
      packages/nocodb-nest/src/strategies/base-view.strategy/base-view.strategy.ts
  69. 3
      packages/nocodb-nest/src/strategies/google.strategy/google.strategy.spec.ts
  70. 65
      packages/nocodb-nest/src/strategies/jwt.strategy.ts
  71. 2
      packages/nocodb-nest/src/strategies/local.strategy.ts
  72. 4
      packages/nocodb-nest/src/version-upgrader/NcUpgrader.ts
  73. 2
      packages/nocodb-nest/src/version-upgrader/ncAttachmentUpgrader.ts
  74. 10
      packages/nocodb-nest/src/version-upgrader/ncAttachmentUpgrader_0104002.ts
  75. 2
      packages/nocodb-nest/src/version-upgrader/ncFilterUpgrader.ts
  76. 46
      packages/nocodb-nest/src/version-upgrader/ncFilterUpgrader_0104004.ts
  77. 2
      packages/nocodb-nest/src/version-upgrader/ncFilterUpgrader_0105003.ts
  78. 2
      packages/nocodb-nest/src/version-upgrader/ncProjectUpgraderV2_0090000.ts
  79. 2
      packages/nocodb-nest/src/version-upgrader/ncUpgradeErrors.ts
  80. 12
      packages/nocodb-nest/src/version-upgrader/v1-legacy/BaseApiBuilder.ts
  81. 2
      packages/nocodb-nest/src/version-upgrader/v1-legacy/NcProjectBuilder.ts
  82. 8
      packages/nocodb-nest/src/version-upgrader/v1-legacy/gql/GqlApiBuilder.ts
  83. 31
      packages/nocodb-nest/src/version-upgrader/v1-legacy/rest/RestApiBuilder.ts
  84. 16
      packages/nocodb-nest/src/version-upgrader/v1-legacy/templates/NcTemplateParser.ts

11
packages/nocodb-nest/src/app.module.ts

@ -1,10 +1,12 @@
import { join } from 'path';
import { Module, RequestMethod } from '@nestjs/common';
import { APP_FILTER } from '@nestjs/core';
import { ServeStaticModule } from '@nestjs/serve-static';
import { Connection } from './connection/connection';
import { GlobalExceptionFilter } from './filters/global-exception/global-exception.filter';
import NcPluginMgrv2 from './helpers/NcPluginMgrv2'
import NcPluginMgrv2 from './helpers/NcPluginMgrv2';
import { GlobalMiddleware } from './middlewares/global/global.middleware';
import { GuiMiddleware } from './middlewares/gui/gui.middleware'
import { GuiMiddleware } from './middlewares/gui/gui.middleware';
import { AuthService } from './modules/auth/auth.service';
import { UsersModule } from './modules/users/users.module';
import { MetaService } from './meta/meta.service';
@ -52,15 +54,12 @@ import { LocalStrategy } from './strategies/local.strategy';
import { AuthTokenStrategy } from './strategies/authtoken.strategy/authtoken.strategy';
import { BaseViewStrategy } from './strategies/base-view.strategy/base-view.strategy';
import { GoogleStrategy } from './strategies/google.strategy/google.strategy';
import NcUpgrader from './version-upgrader/NcUpgrader';
import type {
MiddlewareConsumer,
OnApplicationBootstrap,
} from '@nestjs/common';
import { ServeStaticModule } from '@nestjs/serve-static';
import { join } from 'path';
import NcUpgrader from './version-upgrader/NcUpgrader';
@Module({
imports: [
ServeStaticModule.forRoot({

8
packages/nocodb-nest/src/db/BaseModelSqlv2.ts

@ -50,6 +50,7 @@ import genRollupSelectv2 from './genRollupSelectv2';
import conditionV2 from './conditionV2';
import sortV2 from './sortV2';
import { customValidators } from './util/customValidators';
import type { XKnex } from './CustomKnex';
import type {
XcFilter,
XcFilterWithAlias,
@ -65,7 +66,6 @@ import type {
} from '../models';
import type { Knex } from 'knex';
import type { SortType } from 'nocodb-sdk';
import { XKnex } from './CustomKnex';
export async function getViewAndModelByAliasOrId(param: {
projectName: string;
@ -184,14 +184,14 @@ class BaseModelSqlv2 {
await this.model.getColumns();
const pks = this.model.primaryKeys;
if(!pks.length) return false;
if (!pks.length) return false;
qb.select(pks[0].column_name)
qb.select(pks[0].column_name);
if ((id + '').split('___').length != pks?.length) {
return false;
}
qb.where(_wherePk(pks, id)).first()
qb.where(_wherePk(pks, id)).first();
return !!(await qb);
}

1
packages/nocodb-nest/src/db/CustomKnex.ts

@ -483,6 +483,7 @@ interface XcXonditionObj {
}
declare module 'knex' {
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace Knex {
interface QueryInterface {
clientType(): string;

2
packages/nocodb-nest/src/init.ts

@ -1,5 +1,5 @@
import { Connection } from './connection/connection';
import { MetaService } from './meta/meta.service'
import { MetaService } from './meta/meta.service';
import Noco from './Noco';
// run upgrader

2
packages/nocodb-nest/src/main.ts

@ -1,6 +1,6 @@
import { NestFactory } from '@nestjs/core';
import cors from 'cors';
import express from 'express'
import express from 'express';
import { AppModule } from './app.module';
async function bootstrap() {

5
packages/nocodb-nest/src/meta/meta.service.ts

@ -3,8 +3,9 @@ import {
Inject,
Injectable,
OnApplicationBootstrap,
OnModuleInit, Optional,
} from '@nestjs/common'
OnModuleInit,
Optional,
} from '@nestjs/common';
import { customAlphabet } from 'nanoid';
import CryptoJS from 'crypto-js';

9
packages/nocodb-nest/src/middlewares/gui/gui.middleware.ts

@ -1,10 +1,11 @@
import { Injectable, NestMiddleware } from '@nestjs/common'
import NcToolGui from 'nc-lib-gui'
import { Injectable } from '@nestjs/common';
import NcToolGui from 'nc-lib-gui';
import type { NestMiddleware } from '@nestjs/common';
@Injectable()
export class GuiMiddleware implements NestMiddleware {
use(req: any, res: any, next: () => void) {
const dashboardPath = process.env.NC_DASHBOARD_URL || '/dashboard'
NcToolGui.expressMiddleware(dashboardPath)(req, res, next)
const dashboardPath = process.env.NC_DASHBOARD_URL || '/dashboard';
NcToolGui.expressMiddleware(dashboardPath)(req, res, next);
}
}

172
packages/nocodb-nest/src/models/Model.ts

@ -57,7 +57,7 @@ export default class Model implements TableType {
{
fk_model_id: this.id,
},
ncMeta
ncMeta,
);
return this.columns;
}
@ -94,7 +94,7 @@ export default class Model implements TableType {
mm?: BoolType;
type?: ModelTypes;
},
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
) {
const insertObj = extractProps(model, [
'table_name',
@ -113,7 +113,7 @@ export default class Model implements TableType {
{
project_id: projectId,
base_id: baseId,
}
},
);
}
@ -125,13 +125,13 @@ export default class Model implements TableType {
projectId,
baseId,
MetaTable.MODELS,
insertObj
insertObj,
);
await NocoCache.appendToList(
CacheScope.MODEL,
[projectId],
`${CacheScope.MODEL}:${id}`
`${CacheScope.MODEL}:${id}`,
);
const view = await View.insert(
@ -141,7 +141,7 @@ export default class Model implements TableType {
is_default: true,
type: ViewTypes.GRID,
},
ncMeta
ncMeta,
);
for (const column of model?.columns || []) {
@ -159,7 +159,7 @@ export default class Model implements TableType {
project_id: string;
base_id: string;
},
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
): Promise<Model[]> {
let modelList = [];
if (base_id) {
@ -176,7 +176,7 @@ export default class Model implements TableType {
orderBy: {
order: 'asc',
},
}
},
);
// parse meta of each model
@ -188,7 +188,7 @@ export default class Model implements TableType {
await NocoCache.setList(
CacheScope.MODEL,
[project_id, base_id],
modelList
modelList,
);
} else {
await NocoCache.setList(CacheScope.MODEL, [project_id], modelList);
@ -197,7 +197,7 @@ export default class Model implements TableType {
modelList.sort(
(a, b) =>
(a.order != null ? a.order : Infinity) -
(b.order != null ? b.order : Infinity)
(b.order != null ? b.order : Infinity),
);
return modelList.map((m) => new Model(m));
}
@ -210,7 +210,7 @@ export default class Model implements TableType {
project_id: string;
db_alias: string;
},
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
): Promise<Model[]> {
let modelList = await NocoCache.getList(CacheScope.MODEL, [
project_id,
@ -220,7 +220,7 @@ export default class Model implements TableType {
modelList = await ncMeta.metaList2(
project_id,
db_alias,
MetaTable.MODELS
MetaTable.MODELS,
);
// parse meta of each model
@ -244,7 +244,7 @@ export default class Model implements TableType {
id &&
(await NocoCache.get(
`${CacheScope.MODEL}:${id}`,
CacheGetType.TYPE_OBJECT
CacheGetType.TYPE_OBJECT,
));
if (!modelData) {
modelData = await ncMeta.metaGet2(null, null, MetaTable.MODELS, id);
@ -260,21 +260,21 @@ export default class Model implements TableType {
public static async getByIdOrName(
args:
| {
project_id: string;
base_id: string;
table_name: string;
}
project_id: string;
base_id: string;
table_name: string;
}
| {
id?: string;
},
ncMeta = Noco.ncMeta
id?: string;
},
ncMeta = Noco.ncMeta,
): Promise<Model> {
const k = 'id' in args ? args?.id : args;
let modelData =
k &&
(await NocoCache.get(
`${CacheScope.MODEL}:${k}`,
CacheGetType.TYPE_OBJECT
CacheGetType.TYPE_OBJECT,
));
if (!modelData) {
modelData = await ncMeta.metaGet2(null, null, MetaTable.MODELS, k);
@ -295,13 +295,13 @@ export default class Model implements TableType {
table_name?: string;
id?: string;
},
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
): Promise<Model> {
let modelData =
id &&
(await NocoCache.get(
`${CacheScope.MODEL}:${id}`,
CacheGetType.TYPE_OBJECT
CacheGetType.TYPE_OBJECT,
));
if (!modelData) {
modelData = await ncMeta.metaGet2(
@ -310,7 +310,7 @@ export default class Model implements TableType {
MetaTable.MODELS,
id || {
table_name,
}
},
);
modelData.meta = parseMetaProp(modelData);
await NocoCache.set(`${CacheScope.MODEL}:${modelData.id}`, modelData);
@ -336,7 +336,7 @@ export default class Model implements TableType {
dbDriver: XKnex;
model?: Model;
},
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
): Promise<BaseModelSqlv2> {
const model = args?.model || (await this.get(args.id, ncMeta));
@ -388,7 +388,7 @@ export default class Model implements TableType {
await NocoCache.deepDel(
cacheScopeName,
`${cacheScopeName}:${col.id}`,
CacheDelDirection.CHILD_TO_PARENT
CacheDelDirection.CHILD_TO_PARENT,
);
}
}
@ -402,14 +402,14 @@ export default class Model implements TableType {
condition: {
fk_related_model_id: this.id,
},
}
},
);
for (const col of leftOverColumns) {
await NocoCache.deepDel(
CacheScope.COL_RELATION,
`${CacheScope.COL_RELATION}:${col.fk_column_id}`,
CacheDelDirection.CHILD_TO_PARENT
CacheDelDirection.CHILD_TO_PARENT,
);
}
@ -421,7 +421,7 @@ export default class Model implements TableType {
await NocoCache.deepDel(
CacheScope.COLUMN,
`${CacheScope.COLUMN}:${this.id}`,
CacheDelDirection.CHILD_TO_PARENT
CacheDelDirection.CHILD_TO_PARENT,
);
await ncMeta.metaDelete(null, null, MetaTable.COLUMNS, {
fk_model_id: this.id,
@ -430,7 +430,7 @@ export default class Model implements TableType {
await NocoCache.deepDel(
CacheScope.MODEL,
`${CacheScope.MODEL}:${this.id}`,
CacheDelDirection.CHILD_TO_PARENT
CacheDelDirection.CHILD_TO_PARENT,
);
await ncMeta.metaDelete(null, null, MetaTable.MODELS, this.id);
@ -479,7 +479,7 @@ export default class Model implements TableType {
tableId,
title: string,
table_name: string,
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
) {
if (!title) {
NcError.badRequest("Missing 'title' property in body");
@ -506,7 +506,7 @@ export default class Model implements TableType {
title,
table_name,
},
tableId
tableId,
);
}
@ -528,7 +528,7 @@ export default class Model implements TableType {
{
mm: isMm,
},
tableId
tableId,
);
}
@ -553,7 +553,7 @@ export default class Model implements TableType {
static async updateOrder(
tableId: string,
order: number,
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
) {
// get existing cache
const key = `${CacheScope.MODEL}:${tableId}`;
@ -571,14 +571,14 @@ export default class Model implements TableType {
{
order,
},
tableId
tableId,
);
}
static async updatePrimaryColumn(
tableId: string,
columnId: string,
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
) {
const model = await this.getWithInfo({ id: tableId });
const newPvCol = model.columns.find((c) => c.id === columnId);
@ -603,7 +603,7 @@ export default class Model implements TableType {
{
pv: false,
},
col.id
col.id,
);
}
@ -623,7 +623,7 @@ export default class Model implements TableType {
{
pv: true,
},
newPvCol.id
newPvCol.id,
);
const grid_views_with_column = await ncMeta.metaList2(
@ -634,7 +634,7 @@ export default class Model implements TableType {
condition: {
fk_column_id: newPvCol.id,
},
}
},
);
if (grid_views_with_column.length) {
@ -663,7 +663,7 @@ export default class Model implements TableType {
{
mm: true,
},
id
id,
);
}
@ -677,63 +677,63 @@ export default class Model implements TableType {
base_id?: string;
aliasOrId: string;
},
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
) {
const modelId =
project_id &&
aliasOrId &&
(await NocoCache.get(
`${CacheScope.MODEL}:${project_id}:${aliasOrId}`,
CacheGetType.TYPE_OBJECT
CacheGetType.TYPE_OBJECT,
));
if (!modelId) {
const model = base_id
? await ncMeta.metaGet2(
null,
null,
MetaTable.MODELS,
{ project_id, base_id },
null,
{
_or: [
{
id: {
eq: aliasOrId,
null,
null,
MetaTable.MODELS,
{ project_id, base_id },
null,
{
_or: [
{
id: {
eq: aliasOrId,
},
},
},
{
title: {
eq: aliasOrId,
{
title: {
eq: aliasOrId,
},
},
},
],
}
)
],
},
)
: await ncMeta.metaGet2(
null,
null,
MetaTable.MODELS,
{ project_id },
null,
{
_or: [
{
id: {
eq: aliasOrId,
null,
null,
MetaTable.MODELS,
{ project_id },
null,
{
_or: [
{
id: {
eq: aliasOrId,
},
},
},
{
title: {
eq: aliasOrId,
{
title: {
eq: aliasOrId,
},
},
},
],
}
);
],
},
);
if (model) {
await NocoCache.set(
`${CacheScope.MODEL}:${project_id}:${aliasOrId}`,
model.id
model.id,
);
await NocoCache.set(`${CacheScope.MODEL}:${model.id}`, model);
}
@ -749,7 +749,7 @@ export default class Model implements TableType {
base_id,
exclude_id,
}: { table_name; project_id; base_id; exclude_id? },
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
) {
return !(await ncMeta.metaGet2(
project_id,
@ -759,7 +759,7 @@ export default class Model implements TableType {
table_name,
},
null,
exclude_id && { id: { neq: exclude_id } }
exclude_id && { id: { neq: exclude_id } },
));
}
@ -770,7 +770,7 @@ export default class Model implements TableType {
base_id,
exclude_id,
}: { title; project_id; base_id; exclude_id? },
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
) {
return !(await ncMeta.metaGet2(
project_id,
@ -780,14 +780,14 @@ export default class Model implements TableType {
title,
},
null,
exclude_id && { id: { neq: exclude_id } }
exclude_id && { id: { neq: exclude_id } },
));
}
async getAliasColObjMap() {
return (await this.getColumns()).reduce(
(sortAgg, c) => ({ ...sortAgg, [c.title]: c }),
{}
{},
);
}
@ -795,7 +795,7 @@ export default class Model implements TableType {
static async updateMeta(
tableId: string,
meta: string | Record<string, any>,
ncMeta = Noco.ncMeta
ncMeta = Noco.ncMeta,
) {
// get existing cache
const key = `${CacheScope.MODEL}:${tableId}`;
@ -815,7 +815,7 @@ export default class Model implements TableType {
{
meta: typeof meta === 'object' ? JSON.stringify(meta) : meta,
},
tableId
tableId,
);
}
}

7
packages/nocodb-nest/src/modules/api-tokens/api-tokens.controller.ts

@ -2,14 +2,15 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Post,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {
Acl,

2
packages/nocodb-nest/src/modules/api-tokens/api-tokens.service.ts

@ -4,9 +4,9 @@ import { OrgUserRoles } from 'nocodb-sdk';
import { validatePayload } from '../../helpers';
import { NcError } from '../../helpers/catchError';
import { ApiToken } from '../../models';
import extractRolesObj from '../../utils/extractRolesObj';
import type { User } from '../../models';
import type { ApiTokenReqType } from 'nocodb-sdk';
import extractRolesObj from '../../utils/extractRolesObj'
@Injectable()
export class ApiTokensService {

6
packages/nocodb-nest/src/modules/attachments/attachments.controller.ts

@ -14,12 +14,10 @@ import {
UseInterceptors,
} from '@nestjs/common';
import multer from 'multer';
import {
AnyFilesInterceptor,
} from '@nestjs/platform-express';
import { AnyFilesInterceptor } from '@nestjs/platform-express';
import { AuthGuard } from '@nestjs/passport';
import { NC_ATTACHMENT_FIELD_SIZE } from '../../constants';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { UploadAllowedInterceptor } from '../../interceptors/is-upload-allowed/is-upload-allowed.interceptor';
import { AttachmentsService } from './attachments.service';

7
packages/nocodb-nest/src/modules/audits/audits.controller.ts

@ -1,16 +1,17 @@
import {
Body,
Controller,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Query,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {
Acl,

7
packages/nocodb-nest/src/modules/auth/auth.controller.ts

@ -1,13 +1,14 @@
import {
Body,
Controller,
Get, HttpCode,
Get,
HttpCode,
Post,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { ExtractProjectIdMiddleware } from '../../middlewares/extract-project-id/extract-project-id.middleware';
import extractRolesObj from '../../utils/extractRolesObj';
import { AuthService } from './auth.service';

5
packages/nocodb-nest/src/modules/auth/auth.module.ts

@ -8,10 +8,7 @@ import { AuthController } from './auth.controller';
@Module({
controllers: [AuthController],
imports: [
UsersModule,
PassportModule
],
imports: [UsersModule, PassportModule],
providers: [AuthService, LocalStrategy],
})
export class AuthModule {}

4
packages/nocodb-nest/src/modules/auth/auth.service.ts

@ -4,8 +4,8 @@ import { Injectable } from '@nestjs/common';
import * as bcrypt from 'bcryptjs';
import { v4 as uuidv4 } from 'uuid';
import Noco from '../../Noco'
import { genJwt } from '../users/helpers'
import Noco from '../../Noco';
import { genJwt } from '../users/helpers';
import { UsersService } from '../users/users.service';
import { Connection } from '../../connection/connection';
import type { CreateUserDto } from './auth.controller';

7
packages/nocodb-nest/src/modules/bases/bases.controller.ts

@ -2,15 +2,16 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { BaseReqType } from 'nocodb-sdk';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {
Acl,

5
packages/nocodb-nest/src/modules/columns/columns.controller.ts

@ -2,13 +2,14 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { ColumnReqType } from 'nocodb-sdk';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard';

4
packages/nocodb-nest/src/modules/datas/bulk-data-alias/bulk-data-alias.controller.ts

@ -9,9 +9,9 @@ import {
Request,
Response,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../../guards/global/global.guard'
import { GlobalGuard } from '../../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

2
packages/nocodb-nest/src/modules/datas/data-alias-export/data-alias-export.controller.ts

@ -1,7 +1,7 @@
import { Controller, Get, Request, Response, UseGuards } from '@nestjs/common';
import * as XLSX from 'xlsx';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../../guards/global/global.guard'
import { GlobalGuard } from '../../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

7
packages/nocodb-nest/src/modules/datas/data-alias-nested/data-alias-nested.controller.ts

@ -1,14 +1,15 @@
import {
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Post,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../../guards/global/global.guard'
import { GlobalGuard } from '../../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

2
packages/nocodb-nest/src/modules/datas/data-alias.controller.ts

@ -12,7 +12,7 @@ import {
UseGuards,
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { parseHrtimeToSeconds } from '../../helpers';
import {
Acl,

15
packages/nocodb-nest/src/modules/datas/datas.controller.ts

@ -2,14 +2,19 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Request, UseGuards,
} from '@nestjs/common'
import { GlobalGuard } from '../../guards/global/global.guard'
import { Acl, ExtractProjectIdMiddleware } from '../../middlewares/extract-project-id/extract-project-id.middleware'
Request,
UseGuards,
} from '@nestjs/common';
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,
} from '../../middlewares/extract-project-id/extract-project-id.middleware';
import { DatasService } from './datas.service';
@Controller()

7
packages/nocodb-nest/src/modules/datas/old-datas/old-datas.controller.ts

@ -2,16 +2,17 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Request,
Response,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../../guards/global/global.guard'
import { GlobalGuard } from '../../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

7
packages/nocodb-nest/src/modules/filters/filters.controller.ts

@ -2,15 +2,16 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { FilterReqType } from 'nocodb-sdk';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {
Acl,

2
packages/nocodb-nest/src/modules/form-columns/form-columns.controller.ts

@ -1,6 +1,6 @@
import { Body, Controller, Param, Patch, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

9
packages/nocodb-nest/src/modules/galleries/galleries.controller.ts

@ -1,15 +1,16 @@
import {
Body,
Controller,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { GalleryUpdateReqType, ViewCreateReqType } from 'nocodb-sdk';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,
@ -17,7 +18,7 @@ import {
import { GalleriesService } from './galleries.service';
@Controller()
@UseGuards(ExtractProjectIdMiddleware,GlobalGuard)
@UseGuards(ExtractProjectIdMiddleware, GlobalGuard)
export class GalleriesController {
constructor(private readonly galleriesService: GalleriesService) {}

32
packages/nocodb-nest/src/modules/global/global.module.ts

@ -1,15 +1,16 @@
import { Global, Module, Provider } from '@nestjs/common'
import { JwtModule, JwtService } from '@nestjs/jwt'
import { ExtractJwt } from 'passport-jwt'
import { Connection } from '../../connection/connection'
import { GlobalGuard } from '../../guards/global/global.guard'
import { MetaService } from '../../meta/meta.service'
import { SocketService } from '../../services/client/socket.service'
import { JwtStrategy } from '../../strategies/jwt.strategy'
import NcConfigFactory from '../../utils/NcConfigFactory'
import { jwtConstants } from '../auth/constants'
import { UsersModule } from '../users/users.module'
import { UsersService } from '../users/users.service'
import { Global, Module } from '@nestjs/common';
import { JwtModule, JwtService } from '@nestjs/jwt';
import { ExtractJwt } from 'passport-jwt';
import { Connection } from '../../connection/connection';
import { GlobalGuard } from '../../guards/global/global.guard';
import { MetaService } from '../../meta/meta.service';
import { SocketService } from '../../services/client/socket.service';
import { JwtStrategy } from '../../strategies/jwt.strategy';
import NcConfigFactory from '../../utils/NcConfigFactory';
import { jwtConstants } from '../auth/constants';
import { UsersModule } from '../users/users.module';
import { UsersService } from '../users/users.service';
import type { Provider } from '@nestjs/common';
export const JwtStrategyProvider: Provider = {
provide: JwtStrategy,
@ -32,9 +33,7 @@ export const JwtStrategyProvider: Provider = {
@Global()
@Module({
imports: [
],
imports: [],
providers: [
Connection,
MetaService,
@ -53,5 +52,4 @@ export const JwtStrategyProvider: Provider = {
SocketService,
],
})
export class GlobalModule {
}
export class GlobalModule {}

2
packages/nocodb-nest/src/modules/grid-columns/grid-columns.controller.ts

@ -1,7 +1,7 @@
import { Body, Controller, Get, Param, Patch, UseGuards } from '@nestjs/common';
import { GridColumnReqType } from 'nocodb-sdk';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

7
packages/nocodb-nest/src/modules/hooks/hooks.controller.ts

@ -2,16 +2,17 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { HookReqType, HookTestReqType } from 'nocodb-sdk';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {
Acl,

2
packages/nocodb-nest/src/modules/import/import.module.ts

@ -1,7 +1,7 @@
import { Module } from '@nestjs/common';
import { AttachmentsService } from '../attachments/attachments.service';
import { ColumnsService } from '../columns/columns.service';
import { BulkDataAliasService } from '../datas/bulk-data-alias/bulk-data-alias.service'
import { BulkDataAliasService } from '../datas/bulk-data-alias/bulk-data-alias.service';
import { FiltersService } from '../filters/filters.service';
import { FormColumnsService } from '../form-columns/form-columns.service';
import { FormsService } from '../forms/forms.service';

7
packages/nocodb-nest/src/modules/maps/maps.controller.ts

@ -1,15 +1,16 @@
import {
Body,
Controller,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { MapUpdateReqType, ViewCreateReqType } from 'nocodb-sdk';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

11
packages/nocodb-nest/src/modules/meta-diffs/meta-diffs.controller.ts

@ -1,6 +1,13 @@
import { Controller, Get, HttpCode, Param, Post, UseGuards } from '@nestjs/common'
import {
Controller,
Get,
HttpCode,
Param,
Post,
UseGuards,
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

7
packages/nocodb-nest/src/modules/model-visibilities/model-visibilities.controller.ts

@ -1,14 +1,15 @@
import {
Body,
Controller,
Get, HttpCode,
Get,
HttpCode,
Param,
Post,
Query,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

2
packages/nocodb-nest/src/modules/org-tokens/ee/org-tokens/org-tokens-ee.service.ts

@ -2,8 +2,8 @@ import { Injectable } from '@nestjs/common';
import { OrgUserRoles } from 'nocodb-sdk';
import { PagedResponseImpl } from '../../../../helpers/PagedResponse';
import { ApiToken } from '../../../../models';
import extractRolesObj from '../../../../utils/extractRolesObj';
import type { UserType } from 'nocodb-sdk';
import extractRolesObj from '../../../../utils/extractRolesObj'
@Injectable()
export class OrgTokensEeService {

5
packages/nocodb-nest/src/modules/org-tokens/org-tokens.controller.ts

@ -2,12 +2,13 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Post,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { ApiTokenReqType } from 'nocodb-sdk';
import { AuthGuard } from '@nestjs/passport';
import { getConditionalHandler } from '../../helpers/getHandler';

2
packages/nocodb-nest/src/modules/org-tokens/org-tokens.service.ts

@ -5,9 +5,9 @@ import { validatePayload } from '../../helpers';
import { NcError } from '../../helpers/catchError';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import { ApiToken } from '../../models';
import extractRolesObj from '../../utils/extractRolesObj';
import type { User } from '../../models';
import type { ApiTokenReqType } from 'nocodb-sdk';
import extractRolesObj from '../../utils/extractRolesObj'
@Injectable()
export class OrgTokensService {

2
packages/nocodb-nest/src/modules/org-users/org-users.controller.ts

@ -12,7 +12,7 @@ import {
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { OrgUserRoles } from 'nocodb-sdk';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {
Acl,

2
packages/nocodb-nest/src/modules/org-users/org-users.service.ts

@ -16,7 +16,7 @@ import { randomTokenString } from '../../helpers/stringHelpers';
import { Audit, ProjectUser, Store, SyncSource, User } from '../../models';
import Noco from '../../Noco';
import extractRolesObj from '../../utils/extractRolesObj'
import extractRolesObj from '../../utils/extractRolesObj';
import { MetaTable } from '../../utils/globals';
import { ProjectUsersService } from '../project-users/project-users.service';
import type { UserType } from 'nocodb-sdk';

7
packages/nocodb-nest/src/modules/project-users/project-users.controller.ts

@ -2,16 +2,17 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { ProjectUserReqType } from 'nocodb-sdk';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

7
packages/nocodb-nest/src/modules/projects/projects.controller.ts

@ -2,18 +2,19 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Query,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import isDocker from 'is-docker';
import { ProjectReqType } from 'nocodb-sdk';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {
ExtractProjectIdMiddleware,

7
packages/nocodb-nest/src/modules/shared-bases/shared-bases.controller.ts

@ -2,15 +2,16 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,

7
packages/nocodb-nest/src/modules/sorts/sorts.controller.ts

@ -2,15 +2,16 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { SortReqType } from 'nocodb-sdk';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {
ExtractProjectIdMiddleware,

4
packages/nocodb-nest/src/modules/sync/helpers/job.ts

@ -2418,8 +2418,8 @@ export default async (
syncDB,
services: {
bulkDataService,
tableService
}
tableService,
},
});
}
} catch (error) {

2
packages/nocodb-nest/src/modules/sync/helpers/readAndProcessData.ts

@ -228,7 +228,7 @@ export async function importLTARData({
base,
logDetailed,
logBasic,
services
services,
}));
const modelMeta: any =

15
packages/nocodb-nest/src/modules/sync/sync.controller.ts

@ -2,14 +2,19 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Req, UseGuards,
} from '@nestjs/common'
import { GlobalGuard } from '../../guards/global/global.guard'
import { Acl, ExtractProjectIdMiddleware } from '../../middlewares/extract-project-id/extract-project-id.middleware'
Req,
UseGuards,
} from '@nestjs/common';
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,
} from '../../middlewares/extract-project-id/extract-project-id.middleware';
import { SyncService } from './sync.service';
@Controller()

7
packages/nocodb-nest/src/modules/tables/tables.controller.ts

@ -2,17 +2,18 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Query,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { TableReqType } from 'nocodb-sdk';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import extractRolesObj from '../../utils/extractRolesObj';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {

1
packages/nocodb-nest/src/modules/tables/tables.service.ts

@ -1,4 +1,3 @@
import { Injectable } from '@nestjs/common';
import DOMPurify from 'isomorphic-dompurify';
import {

13
packages/nocodb-nest/src/modules/test/TestResetService/index.ts

@ -21,11 +21,14 @@ const loginRootUser = async () => {
return response.data.token;
} catch (e) {
console.log('Error in loginRootUser', e)
let msg = e.response?.data?.msg || e.response?.data?.message || 'Some internal error occurred'
let errors = e.response?.data?.errors
console.log('msg', msg)
console.log('errors', errors)
console.log('Error in loginRootUser', e);
const msg =
e.response?.data?.msg ||
e.response?.data?.message ||
'Some internal error occurred';
const errors = e.response?.data?.errors;
console.log('msg', msg);
console.log('errors', errors);
const response = await axios.post(
'http://localhost:8080/api/v1/auth/user/signup',
{ email: 'user@nocodb.com', password: 'Password123.' },

9
packages/nocodb-nest/src/modules/test/TestResetService/resetMetaSakilaSqliteProject.ts

@ -1,9 +1,9 @@
import { promises as fs } from 'fs';
import path from 'path';
import axios from 'axios';
import path from 'path'
const sqliteFilePath = (parallelId: string) => {
const rootDir = process.cwd()
const rootDir = process.cwd();
return `${rootDir}/test_sakila_${parallelId}.db`;
};
@ -76,10 +76,7 @@ const deleteSqliteFileIfExists = async (parallelId: string) => {
};
const seedSakilaSqliteFile = async (parallelId: string) => {
const testsDir = path.join(
process.cwd(),
'tests'
);;
const testsDir = path.join(process.cwd(), 'tests');
await fs.copyFile(
`${testsDir}/sqlite-sakila-db/sakila.db`,

7
packages/nocodb-nest/src/modules/test/TestResetService/resetPgSakilaProject.ts

@ -1,7 +1,7 @@
import { promises as fs } from 'fs';
import path from 'path';
import axios from 'axios';
import { knex } from 'knex';
import path from 'path'
import Audit from '../../../models/Audit';
import type Project from '../../../models/Project';
@ -79,10 +79,7 @@ const isSakilaPgToBeReset = async (parallelId: string, project?: Project) => {
};
const resetSakilaPg = async (parallelId: string, isEmptyProject: boolean) => {
const testsDir = path.join(
process.cwd(),
'/tests',
);
const testsDir = path.join(process.cwd(), '/tests');
if (isEmptyProject) return;

2
packages/nocodb-nest/src/modules/test/test.controller.ts

@ -1,4 +1,4 @@
import { Controller, HttpCode, Post, Req } from '@nestjs/common'
import { Controller, HttpCode, Post, Req } from '@nestjs/common';
import { TestService } from './test.service';
import { TestResetService } from './TestResetService';

4
packages/nocodb-nest/src/modules/users/users.module.ts

@ -6,9 +6,7 @@ import { UsersService } from './users.service';
import { UsersController } from './users.controller';
@Module({
imports: [
GlobalModule
],
imports: [GlobalModule],
controllers: [UsersController],
providers: [UsersService],
exports: [UsersService],

5
packages/nocodb-nest/src/modules/users/users.service.ts

@ -25,9 +25,7 @@ import type {
@Injectable()
export class UsersService {
constructor(
private metaService: MetaService,
) {}
constructor(private metaService: MetaService) {}
async findOne(email: string) {
const user = await this.metaService.metaGet(null, null, MetaTable.USERS, {
@ -465,7 +463,6 @@ export class UsersService {
email: user.email,
});
setTokenCookie(param.res, refreshToken);
await Audit.insert({

8
packages/nocodb-nest/src/modules/utils/utils.controller.ts

@ -1,12 +1,13 @@
import {
Body,
Controller,
Get, HttpCode,
Get,
HttpCode,
Post,
Request,
UseGuards,
} from '@nestjs/common'
import { GlobalGuard } from '../../guards/global/global.guard'
} from '@nestjs/common';
import { GlobalGuard } from '../../guards/global/global.guard';
import {
Acl,
ExtractProjectIdMiddleware,
@ -62,5 +63,4 @@ export class UtilsController {
// todo: refactor
return (await this.utilsService.aggregatedMetaInfo()) as any;
}
}

7
packages/nocodb-nest/src/modules/view-columns/view-columns.controller.ts

@ -1,15 +1,16 @@
import {
Body,
Controller,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { ColumnReqType, ViewColumnReqType } from 'nocodb-sdk';
import { AuthGuard } from '@nestjs/passport';
import { GlobalGuard } from '../../guards/global/global.guard'
import { GlobalGuard } from '../../guards/global/global.guard';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {
Acl,

5
packages/nocodb-nest/src/modules/views/views.controller.ts

@ -2,14 +2,15 @@ import {
Body,
Controller,
Delete,
Get, HttpCode,
Get,
HttpCode,
Param,
Patch,
Post,
Query,
Request,
UseGuards,
} from '@nestjs/common'
} from '@nestjs/common';
import { ViewUpdateReqType } from 'nocodb-sdk';
import { PagedResponseImpl } from '../../helpers/PagedResponse';
import {

6
packages/nocodb-nest/src/nocobuild.ts

@ -1,7 +1,7 @@
import { NestFactory } from '@nestjs/core';
import express from 'express';
import NcToolGui from 'nc-lib-gui';
import { AppModule } from './app.module';
import NcToolGui from 'nc-lib-gui'
export default async function (app = express()) {
const nestApp = await NestFactory.create(AppModule);
@ -9,9 +9,7 @@ export default async function (app = express()) {
const dashboardPath = process.env.NC_DASHBOARD_URL || '/dashboard';
app.use(NcToolGui.expressMiddleware(dashboardPath));
app.get('/', (_req, res) =>
res.redirect(dashboardPath)
);
app.get('/', (_req, res) => res.redirect(dashboardPath));
app.use(nestApp.getHttpAdapter().getInstance());
return app;

3
packages/nocodb-nest/src/run/docker.ts

@ -1,7 +1,7 @@
import axios from 'axios';
import cors from 'cors';
import express from 'express';
import Noco from '../Noco'
import Noco from '../Noco';
const server = express();
server.enable('trust proxy');
@ -24,7 +24,6 @@ process.env[`DEBUG`] = 'xc*';
// });
// })().catch((e) => console.log(e));
(async () => {
const httpServer = server.listen(process.env.PORT || 8080, async () => {
server.use(await Noco.init({}, httpServer, server));

3
packages/nocodb-nest/src/run/dockerRunMysql.ts

@ -9,7 +9,7 @@ server.disable('x-powered-by');
server.use(
cors({
exposedHeaders: 'xc-db-response',
})
}),
);
server.set('view engine', 'ejs');
@ -31,4 +31,3 @@ process.env[`NC_DB`] = `mysql2://localhost:3306?u=root&p=password&d=${metaDb}`;
server.use(await Noco.init({}, httpServer, server));
});
})().catch((e) => console.log(e));

3
packages/nocodb-nest/src/run/dockerRunPG.ts

@ -9,7 +9,7 @@ server.disable('x-powered-by');
server.use(
cors({
exposedHeaders: 'xc-db-response',
})
}),
);
server.set('view engine', 'ejs');
@ -31,4 +31,3 @@ process.env[`NC_DB`] = `pg://localhost:5432?u=postgres&p=password&d=${metaDb}`;
server.use(await Noco.init({}, httpServer, server));
});
})().catch((e) => console.log(e));

7
packages/nocodb-nest/src/run/dockerRunPG_CyQuick.ts

@ -1,7 +1,7 @@
import cors from 'cors';
import express from 'express';
import Noco from '../Noco'
import nocobuild from '../nocobuild'
import Noco from '../Noco';
import nocobuild from '../nocobuild';
const server = express();
server.enable('trust proxy');
@ -10,7 +10,7 @@ server.disable('x-powered-by');
server.use(
cors({
exposedHeaders: 'xc-db-response',
})
}),
);
server.set('view engine', 'ejs');
@ -25,4 +25,3 @@ process.env[
server.use(await Noco.init({}, httpServer, server));
});
})().catch((e) => console.log(e));

5
packages/nocodb-nest/src/run/testDocker.ts

@ -2,7 +2,7 @@ import axios from 'axios';
import cors from 'cors';
import express from 'express';
import { User } from '../models';
import Noco from '../Noco'
import Noco from '../Noco';
process.env.NC_VERSION = '0009044';
@ -30,10 +30,9 @@ process.env[`DEBUG`] = 'xc*';
{
email: 'user@nocodb.com',
password: 'Password123.',
}
},
);
console.log(response.data);
}
});
})().catch((e) => console.log(e));

3
packages/nocodb-nest/src/services/client/socket.service.spec.ts

@ -1,5 +1,6 @@
import { Test, TestingModule } from '@nestjs/testing';
import { Test } from '@nestjs/testing';
import { SocketService } from './socket.service';
import type { TestingModule } from '@nestjs/testing';
describe('ClientService', () => {
let service: SocketService;

2
packages/nocodb-nest/src/services/client/socket.service.ts

@ -27,7 +27,7 @@ export class SocketService implements OnModuleInit {
) {}
async onModuleInit() {
console.log(Noco.httpServer)
console.log(Noco.httpServer);
this._io = new Server(
Noco.httpServer ?? this.httpAdapterHost.httpAdapter.getHttpServer(),
{

3
packages/nocodb-nest/src/strategies/authtoken.strategy/authtoken.strategy.spec.ts

@ -1,5 +1,6 @@
import { Test, TestingModule } from '@nestjs/testing';
import { Test } from '@nestjs/testing';
import { AuthtokenStrategy } from './authtoken.strategy';
import type { TestingModule } from '@nestjs/testing';
describe('AuthtokenStrategy', () => {
let provider: AuthtokenStrategy;

10
packages/nocodb-nest/src/strategies/authtoken.strategy/authtoken.strategy.ts

@ -7,12 +7,10 @@ import type { Request } from 'express';
@Injectable()
export class AuthTokenStrategy extends PassportStrategy(Strategy, 'authtoken') {
constructor() {
super(
{
headerFields: ['xc-token'],
passReqToCallback: true,
},
);
super({
headerFields: ['xc-token'],
passReqToCallback: true,
});
}
// eslint-disable-next-line @typescript-eslint/ban-types

3
packages/nocodb-nest/src/strategies/base-view.strategy/base-view.strategy.spec.ts

@ -1,5 +1,6 @@
import { Test, TestingModule } from '@nestjs/testing';
import { Test } from '@nestjs/testing';
import { BaseViewStrategy } from './base-view.strategy';
import type { TestingModule } from '@nestjs/testing';
describe('BaseViewStrategy', () => {
let provider: BaseViewStrategy;

6
packages/nocodb-nest/src/strategies/base-view.strategy/base-view.strategy.ts

@ -1,8 +1,8 @@
import { Injectable } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { Strategy } from 'passport-custom';
import { Project } from '../../models'
import extractRolesObj from '../../utils/extractRolesObj'
import { Project } from '../../models';
import extractRolesObj from '../../utils/extractRolesObj';
@Injectable()
export class BaseViewStrategy extends PassportStrategy(Strategy, 'base-view') {
@ -17,7 +17,7 @@ export class BaseViewStrategy extends PassportStrategy(Strategy, 'base-view') {
if (!sharedProject) {
sharedProject = await Project.getByUuid(
req.headers['xc-shared-base-id']
req.headers['xc-shared-base-id'],
);
}
user = {

3
packages/nocodb-nest/src/strategies/google.strategy/google.strategy.spec.ts

@ -1,5 +1,6 @@
import { Test, TestingModule } from '@nestjs/testing';
import { Test } from '@nestjs/testing';
import { GoogleStrategy } from './google.strategy';
import type { TestingModule } from '@nestjs/testing';
describe('GoogleStrategy', () => {
let provider: GoogleStrategy;

65
packages/nocodb-nest/src/strategies/jwt.strategy.ts

@ -1,16 +1,16 @@
import { Injectable, UnauthorizedException } from '@nestjs/common'
import { PassportStrategy } from '@nestjs/passport'
import { ExtractJwt, Strategy } from 'passport-jwt'
import { OrgUserRoles } from 'nocodb-sdk'
import NocoCache from '../cache/NocoCache'
import { ProjectUser, User } from '../models'
import { genJwt } from '../modules/users/helpers'
import Noco from '../Noco'
import extractRolesObj from '../utils/extractRolesObj'
import { CacheGetType, CacheScope } from '../utils/globals'
import { jwtConstants } from '../modules/auth/constants'
import { UsersService } from '../modules/users/users.service'
import NcConfigFactory from '../utils/NcConfigFactory'
import { Injectable, UnauthorizedException } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { ExtractJwt, Strategy } from 'passport-jwt';
import { OrgUserRoles } from 'nocodb-sdk';
import NocoCache from '../cache/NocoCache';
import { ProjectUser, User } from '../models';
import { genJwt } from '../modules/users/helpers';
import Noco from '../Noco';
import extractRolesObj from '../utils/extractRolesObj';
import { CacheGetType, CacheScope } from '../utils/globals';
import { jwtConstants } from '../modules/auth/constants';
import { UsersService } from '../modules/users/users.service';
import NcConfigFactory from '../utils/NcConfigFactory';
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
@ -18,12 +18,11 @@ export class JwtStrategy extends PassportStrategy(Strategy) {
super({
expiresIn: '10h',
...options,
})
});
}
async validate(req: any, jwtPayload: any) {
if (!jwtPayload?.email) return jwtPayload
if (!jwtPayload?.email) return jwtPayload;
// todo: improve this
if (
@ -34,19 +33,19 @@ export class JwtStrategy extends PassportStrategy(Strategy) {
return {
...user,
roles: extractRolesObj(`owner,creator,${OrgUserRoles.SUPER_ADMIN}`),
}
})
};
});
}
const keyVals = [jwtPayload?.email]
const keyVals = [jwtPayload?.email];
if (req.ncProjectId) {
keyVals.push(req.ncProjectId)
keyVals.push(req.ncProjectId);
}
const key = keyVals.join('___')
const key = keyVals.join('___');
const cachedVal = await NocoCache.get(
`${CacheScope.USER}:${key}`,
CacheGetType.TYPE_OBJECT,
)
);
if (cachedVal) {
/*todo: tobe fixed
@ -57,12 +56,12 @@ export class JwtStrategy extends PassportStrategy(Strategy) {
) {
throw new Error('Token Expired. Please login again.');
}*/
return cachedVal
return cachedVal;
}
return User.getByEmail(jwtPayload?.email).then(
async (user: { roles: any; id: string }) => {
user.roles = extractRolesObj(user?.roles)
user.roles = extractRolesObj(user?.roles);
/*
todo: tobe fixed
if (
@ -80,26 +79,26 @@ export class JwtStrategy extends PassportStrategy(Strategy) {
return ProjectUser.get(req.ncProjectId, user.id).then(
async (projectUser) => {
user.roles = extractRolesObj(projectUser?.roles || user.roles)
user.roles = extractRolesObj(projectUser?.roles || user.roles);
user.roles = extractRolesObj(
user.roles === 'owner' ? 'owner,creator' : user.roles,
)
);
// + (user.roles ? `,${user.roles}` : '');
await NocoCache.set(`${CacheScope.USER}:${key}`, user)
return user
await NocoCache.set(`${CacheScope.USER}:${key}`, user);
return user;
},
)
);
} else {
// const roles = projectUser?.roles ? JSON.parse(projectUser.roles) : {guest: true};
if (user) {
await NocoCache.set(`${CacheScope.USER}:${key}`, user)
return user
await NocoCache.set(`${CacheScope.USER}:${key}`, user);
return user;
} else {
throw new Error('User not found')
throw new Error('User not found');
}
}
},
)
);
}
}

2
packages/nocodb-nest/src/strategies/local.strategy.ts

@ -18,7 +18,7 @@ export class LocalStrategy extends PassportStrategy(Strategy) {
const user = await this.authService.validateUser(username, password);
if (!user) {
NcError.badRequest('Invalid credentials')
NcError.badRequest('Invalid credentials');
}
user.roles = extractRolesObj(user.roles);

4
packages/nocodb-nest/src/version-upgrader/NcUpgrader.ts

@ -1,8 +1,6 @@
import debug from 'debug';
import { T } from 'nc-help';
import boxen from 'boxen';
import { NcConfig } from '../interface/config';
import { MetaService } from '../meta/meta.service';
import ncAttachmentUpgrader from './ncAttachmentUpgrader';
import ncAttachmentUpgrader_0104002 from './ncAttachmentUpgrader_0104002';
import ncStickyColumnUpgrader from './ncStickyColumnUpgrader';
@ -15,6 +13,8 @@ import ncProjectUpgraderV2_0090000 from './ncProjectUpgraderV2_0090000';
import ncProjectEnvUpgrader0011045 from './ncProjectEnvUpgrader0011045';
import ncProjectEnvUpgrader from './ncProjectEnvUpgrader';
import ncHookUpgrader from './ncHookUpgrader';
import type { MetaService } from '../meta/meta.service';
import type { NcConfig } from '../interface/config';
const log = debug('nc:version-upgrader');

2
packages/nocodb-nest/src/version-upgrader/ncAttachmentUpgrader.ts

@ -1,10 +1,10 @@
import { UITypes } from 'nocodb-sdk';
import { XKnex } from '../db/CustomKnex';
import { MetaTable } from '../utils/globals';
import Base from '../models/Base';
import Model from '../models/Model';
import NcConnectionMgrv2 from '../utils/common/NcConnectionMgrv2';
import { throwTimeoutError } from './ncUpgradeErrors';
import type { XKnex } from '../db/CustomKnex';
import type { Knex } from 'knex';
import type { NcUpgraderCtx } from './NcUpgrader';
// import type { XKnex } from '../db/sql-data-mapper';

10
packages/nocodb-nest/src/version-upgrader/ncAttachmentUpgrader_0104002.ts

@ -1,10 +1,10 @@
import { UITypes } from 'nocodb-sdk';
import { XKnex } from '../db/CustomKnex'
import { MetaTable } from '../utils/globals';
import Base from '../models/Base';
import Model from '../models/Model';
import NcConnectionMgrv2 from '../utils/common/NcConnectionMgrv2';
import { throwTimeoutError } from './ncUpgradeErrors';
import type { XKnex } from '../db/CustomKnex';
import type { Knex } from 'knex';
import type { NcUpgraderCtx } from './NcUpgrader';
import type { BaseType } from 'nocodb-sdk';
@ -89,7 +89,7 @@ export default async function ({ ncMeta }: NcUpgraderCtx) {
if (
!(await knex.schema.hasColumn(
getTnPath(knex, model),
column.column_name
column.column_name,
))
)
continue;
@ -133,8 +133,8 @@ export default async function ({ ncMeta }: NcUpgraderCtx) {
corruptedAttachment = JSON.parse(
`[${corruptedAttachment.slice(
1,
corruptedAttachment.length - 1
)}]`
corruptedAttachment.length - 1,
)}]`,
);
const newAttachmentMeta = [];
for (const attachment of corruptedAttachment) {
@ -145,7 +145,7 @@ export default async function ({ ncMeta }: NcUpgraderCtx) {
.update({
[attachmentColumn]: JSON.stringify(newAttachmentMeta),
})
.where(where)
.where(where),
);
} catch {
// if parsing failed ignore the cell

2
packages/nocodb-nest/src/version-upgrader/ncFilterUpgrader.ts

@ -33,7 +33,7 @@ export default async function ({ ncMeta }: NcUpgraderCtx) {
null,
MetaTable.FILTER_EXP,
{ base_id: model.base_id, project_id: model.project_id },
filter.id
filter.id,
);
}
}

46
packages/nocodb-nest/src/version-upgrader/ncFilterUpgrader_0104004.ts

@ -1,9 +1,9 @@
import { UITypes } from 'nocodb-sdk';
import { MetaService } from '../meta/meta.service'
import { MetaTable } from '../utils/globals';
import Column from '../models/Column';
import Filter from '../models/Filter';
import Project from '../models/Project';
import type { MetaService } from '../meta/meta.service';
import type { NcUpgraderCtx } from './NcUpgrader';
import type { SelectOptionsType } from 'nocodb-sdk';
@ -72,8 +72,8 @@ const migrateNullAndEmptyToBlankFilters = (filter, ncMeta) => {
{
comparison_op: 'blank',
},
ncMeta
)
ncMeta,
),
);
} else if (['notempty', 'notnull'].includes(filter.comparison_op)) {
// migrate to not blank
@ -83,8 +83,8 @@ const migrateNullAndEmptyToBlankFilters = (filter, ncMeta) => {
{
comparison_op: 'notblank',
},
ncMeta
)
ncMeta,
),
);
}
return actions;
@ -123,8 +123,8 @@ const migrateMultiSelectEq = async (filter, col: Column, ncMeta) => {
comparison_op: 'anyof',
value: newFilterValue,
},
ncMeta
)
ncMeta,
),
);
} else if (filter.comparison_op === 'neq') {
// migrate to `doesn't contain all of`
@ -135,8 +135,8 @@ const migrateMultiSelectEq = async (filter, col: Column, ncMeta) => {
comparison_op: 'nanyof',
value: newFilterValue,
},
ncMeta
)
ncMeta,
),
);
}
return await Promise.all(actions);
@ -154,8 +154,8 @@ const migrateToCheckboxFilter = (filter, ncMeta) => {
{
comparison_op: 'notchecked',
},
ncMeta
)
ncMeta,
),
);
} else if (['notempty', 'notnull'].includes(filter.comparison_op)) {
// migrate to checked
@ -165,8 +165,8 @@ const migrateToCheckboxFilter = (filter, ncMeta) => {
{
comparison_op: 'checked',
},
ncMeta
)
ncMeta,
),
);
} else if (filter.comparison_op === 'eq') {
if (possibleTrueValues.includes(filter.value)) {
@ -178,8 +178,8 @@ const migrateToCheckboxFilter = (filter, ncMeta) => {
comparison_op: 'checked',
value: '',
},
ncMeta
)
ncMeta,
),
);
} else if (possibleFalseValues.includes(filter.value)) {
// migrate to notchecked
@ -190,8 +190,8 @@ const migrateToCheckboxFilter = (filter, ncMeta) => {
comparison_op: 'notchecked',
value: '',
},
ncMeta
)
ncMeta,
),
);
} else {
// invalid value - good to delete
@ -207,8 +207,8 @@ const migrateToCheckboxFilter = (filter, ncMeta) => {
comparison_op: 'checked',
value: '',
},
ncMeta
)
ncMeta,
),
);
} else if (possibleTrueValues.includes(filter.value)) {
// migrate to not checked
@ -219,8 +219,8 @@ const migrateToCheckboxFilter = (filter, ncMeta) => {
comparison_op: 'notchecked',
value: '',
},
ncMeta
)
ncMeta,
),
);
} else {
// invalid value - good to delete
@ -340,8 +340,8 @@ async function updateProjectMeta(ncMeta: MetaService) {
{
meta: JSON.stringify(newProjectMeta),
},
ncMeta
)
ncMeta,
),
);
}
await Promise.all(actions);

2
packages/nocodb-nest/src/version-upgrader/ncFilterUpgrader_0105003.ts

@ -1,8 +1,8 @@
import { UITypes } from 'nocodb-sdk';
import { MetaService } from '../meta/meta.service';
import { MetaTable } from '../utils/globals';
import Column from '../models/Column';
import Filter from '../models/Filter';
import type { MetaService } from '../meta/meta.service';
import type { NcUpgraderCtx } from './NcUpgrader';
// as of 0.105.3, year, time, date and datetime filters include `is like` and `is not like` which are not practical

2
packages/nocodb-nest/src/version-upgrader/ncProjectUpgraderV2_0090000.ts

@ -20,8 +20,8 @@ import Hook from '../models/Hook';
import FormViewColumn from '../models/FormViewColumn';
import GridViewColumn from '../models/GridViewColumn';
import { getUniqueColumnAliasName } from '../helpers/getUniqueName';
import NcProjectBuilderEE from './v1-legacy/NcProjectBuilder';
import Audit from '../models/Audit';
import NcProjectBuilderEE from './v1-legacy/NcProjectBuilder';
import type GalleryView from '../models/GalleryView';
import type FormView from '../models/FormView';
import type { ViewType } from 'nocodb-sdk';

2
packages/nocodb-nest/src/version-upgrader/ncUpgradeErrors.ts

@ -21,7 +21,7 @@ export function throwTimeoutError(e, timeoutErrorInfo) {
}
throw new Error(
`Failed to connect the database ${db} for Project ${timeoutErrorInfo.projectTitle}.
Please fix the connection issue or remove the project before trying to upgrade.`
Please fix the connection issue or remove the project before trying to upgrade.`,
);
}
}

12
packages/nocodb-nest/src/version-upgrader/v1-legacy/BaseApiBuilder.ts

@ -1,15 +1,15 @@
import debug from 'debug';
import { Router } from 'express';
import { BaseModelSql } from '../../db/BaseModelSql';
import { XKnex } from '../../db/CustomKnex';
import ModelXcMetaFactory from '../../db/sql-mgr/code/models/xc/ModelXcMetaFactory'
import { DbConfig, NcConfig } from '../../interface/config';
import inflection from 'inflection';
import { MetaService } from '../../meta/meta.service';
import ModelXcMetaFactory from '../../db/sql-mgr/code/models/xc/ModelXcMetaFactory';
import NcConnectionMgr from '../../utils/common/NcConnectionMgr';
import ncModelsOrderUpgrader from './jobs/ncModelsOrderUpgrader';
import ncParentModelTitleUpgrader from './jobs/ncParentModelTitleUpgrader';
import ncRemoveDuplicatedRelationRows from './jobs/ncRemoveDuplicatedRelationRows';
import type { DbConfig, NcConfig } from '../../interface/config';
import type { XKnex } from '../../db/CustomKnex';
import type { BaseModelSql } from '../../db/BaseModelSql';
import type { MetaService } from '../../meta/meta.service';
import type Noco from '../../Noco';
import type NcProjectBuilder from './NcProjectBuilder';
import type { MysqlClient, PgClient, SqlClient } from 'nc-help';
@ -567,8 +567,6 @@ export default abstract class BaseApiBuilder<T extends Noco> {
return metas;
}
}
interface NcBuilderUpgraderCtx {

2
packages/nocodb-nest/src/version-upgrader/v1-legacy/NcProjectBuilder.ts

@ -1,8 +1,8 @@
import { Router } from 'express';
import { SqlClientFactory } from '../../db/sql-client/lib/SqlClientFactory';
import Noco from '../../Noco';
import { GqlApiBuilder } from './gql/GqlApiBuilder';
import { RestApiBuilder } from './rest/RestApiBuilder';
import type Noco from '../../Noco';
import type { NcConfig } from '../../interface/config';
export default class NcProjectBuilder {

8
packages/nocodb-nest/src/version-upgrader/v1-legacy/gql/GqlApiBuilder.ts

@ -1,12 +1,12 @@
import debug from 'debug';
import { Router } from 'express';
import GqlXcSchemaFactory from '../../../db/sql-mgr/code/gql-schema/xc-ts/GqlXcSchemaFactory'
import { MetaService } from '../../../meta/meta.service';
import Noco from '../../../Noco';
import GqlXcSchemaFactory from '../../../db/sql-mgr/code/gql-schema/xc-ts/GqlXcSchemaFactory';
import BaseApiBuilder from '../BaseApiBuilder';
import type { MetaService } from '../../../meta/meta.service';
import type Noco from '../../../Noco';
import type NcProjectBuilder from '../NcProjectBuilder';
import type { DbConfig, NcConfig } from '../../../interface/config';
import type XcMetaMgr from '../../../interface/XcMetaMgr';
import BaseApiBuilder from '../BaseApiBuilder';
export class GqlApiBuilder extends BaseApiBuilder<Noco> implements XcMetaMgr {
public readonly type = 'gql';

31
packages/nocodb-nest/src/version-upgrader/v1-legacy/rest/RestApiBuilder.ts

@ -1,21 +1,20 @@
import { Router } from 'express';
import debug from 'debug';
import autoBind from 'auto-bind';
import SwaggerXc from '../../../db/sql-mgr/code/routers/xc-ts/SwaggerXc'
import ExpressXcTsRoutes from '../../../db/sql-mgr/code/routes/xc-ts/ExpressXcTsRoutes'
import { MetaService } from '../../../meta/meta.service';
import Noco from '../../../Noco';
import NcHelp from '../../../utils/NcHelp'
import SwaggerXc from '../../../db/sql-mgr/code/routers/xc-ts/SwaggerXc';
import ExpressXcTsRoutes from '../../../db/sql-mgr/code/routes/xc-ts/ExpressXcTsRoutes';
import NcHelp from '../../../utils/NcHelp';
import BaseApiBuilder, { XcTablesPopulateParams } from '../BaseApiBuilder';
import type { MetaService } from '../../../meta/meta.service';
import type Noco from '../../../Noco';
import type { Router } from 'express';
import type { DbConfig, NcConfig } from '../../../interface/config';
import type NcProjectBuilder from '../NcProjectBuilder';
import BaseApiBuilder, { XcTablesPopulateParams } from '../BaseApiBuilder';
const log = debug('nc:api:rest');
export class RestApiBuilder extends BaseApiBuilder<Noco> {
public readonly type = 'rest';
protected nocoTypes: any;
protected nocoRootResolvers: any;
private routers: { [key: string]: Router };
@ -51,7 +50,7 @@ export class RestApiBuilder extends BaseApiBuilder<Noco> {
meta.hasMany,
meta.belongsTo,
meta.type,
meta._tn
meta._tn,
);
/* create routes for table */
@ -74,7 +73,7 @@ export class RestApiBuilder extends BaseApiBuilder<Noco> {
tn: meta.tn,
title: meta.tn,
type: route.type,
}
},
))
) {
await this.xcMeta.metaInsert(
@ -89,7 +88,7 @@ export class RestApiBuilder extends BaseApiBuilder<Noco> {
tn: meta.tn,
title: meta.tn,
type: route.type,
}
},
);
} else {
await this.xcMeta.metaUpdate(
@ -104,7 +103,7 @@ export class RestApiBuilder extends BaseApiBuilder<Noco> {
tn: meta.tn,
title: meta.tn,
type: route.type,
}
},
);
}
};
@ -112,7 +111,7 @@ export class RestApiBuilder extends BaseApiBuilder<Noco> {
await NcHelp.executeOperations(
routesInsertion,
this.connectionConfig.client
this.connectionConfig.client,
);
}
@ -128,7 +127,7 @@ export class RestApiBuilder extends BaseApiBuilder<Noco> {
metaObj.columns,
[...metaObj.belongsTo, ...metaObj.hasMany],
metaObj.hasMany,
metaObj.belongsTo
metaObj.belongsTo,
);
const swaggerDoc = await new SwaggerXc({
@ -147,7 +146,7 @@ export class RestApiBuilder extends BaseApiBuilder<Noco> {
{
title: metaObj.tn,
type: 'table',
}
},
);
const oldSwaggerDoc = JSON.parse(meta.schema);
@ -169,7 +168,7 @@ export class RestApiBuilder extends BaseApiBuilder<Noco> {
{
title: metaObj.tn,
type: 'table',
}
},
);
}

16
packages/nocodb-nest/src/version-upgrader/v1-legacy/templates/NcTemplateParser.ts

@ -57,7 +57,7 @@ export default class NcTemplateParser {
(column) =>
column.cn !== 'title' &&
(column.uidt !== 'ID' ||
tableTemplate.columns.every((c) => c.uidt !== 'ID'))
tableTemplate.columns.every((c) => c.uidt !== 'ID')),
);
return {
@ -116,13 +116,13 @@ export default class NcTemplateParser {
if (!this._m2mRelations) this._m2mRelations = [];
for (const hasMany of tableTemplate.hasMany || []) {
const childTable = this.tables.find(
(table) => table.tn === this.getTable(hasMany.tn)
(table) => table.tn === this.getTable(hasMany.tn),
);
const parentTable = this.tables.find(
(table) => table.tn === tableTemplate.tn
(table) => table.tn === tableTemplate.tn,
);
const parentPrimaryColumn = parentTable.columns.find(
(column) => column.uidt === UITypes.ID
(column) => column.uidt === UITypes.ID,
);
//
// // if duplicate relation ignore
@ -171,16 +171,16 @@ export default class NcTemplateParser {
for (const manyToMany of tableTemplate.manyToMany || []) {
// @ts-ignore
const childTable = this.tables.find(
(table) => table.tn === this.getTable(manyToMany.rtn)
(table) => table.tn === this.getTable(manyToMany.rtn),
);
const parentTable = this.tables.find(
(table) => table.tn === tableTemplate.tn
(table) => table.tn === tableTemplate.tn,
);
const parentPrimaryColumn = parentTable.columns.find(
(column) => column.uidt === UITypes.ID
(column) => column.uidt === UITypes.ID,
);
const childPrimaryColumn = childTable.columns.find(
(column) => column.uidt === UITypes.ID
(column) => column.uidt === UITypes.ID,
);
// if duplicate relation ignore

Loading…
Cancel
Save