700 fix rest api issues (#11326)

fixes issues listed here
https://github.com/twentyhq/core-team-issues/issues/700
This commit is contained in:
martmull
2025-04-01 17:22:24 +02:00
committed by GitHub
parent 51ea241a1c
commit 8e6b175f34
7 changed files with 42 additions and 24 deletions

View File

@ -7,7 +7,7 @@ const formatMessage = (error: BaseGraphQLError) => {
? error.extensions.response?.error ||
error.extensions.response ||
error.message
: error.error;
: error.error || error.message;
formattedMessage = formattedMessage
.replace(/"/g, "'")

View File

@ -6,10 +6,14 @@ import { capitalize } from 'twenty-shared/utils';
export class DeleteMetadataQueryFactory {
create(objectNameSingular: string): string {
const objectNameCapitalized = capitalize(objectNameSingular);
const formattedObjectName =
objectNameCapitalized === 'RelationMetadata'
? 'Relation'
: objectNameCapitalized;
return `
mutation Delete${objectNameCapitalized}($input: DeleteOne${objectNameCapitalized}Input!) {
deleteOne${objectNameCapitalized}(input: $input) {
mutation Delete${objectNameCapitalized}($input: DeleteOne${formattedObjectName}Input!) {
deleteOne${formattedObjectName}(input: $input) {
id
}
}

View File

@ -77,7 +77,7 @@ export const fetchMetadataFields = (objectNamePlural: string) => {
`;
case 'fields':
return fields;
case 'relations':
case 'relationMetadata':
return `
id
relationType

View File

@ -26,19 +26,19 @@ export const parseMetadataPath = (
case 'fields':
return {
objectNameSingular: 'field',
objectNamePlural: objectName,
objectNamePlural: 'fields',
id: queryAction[1],
};
case 'objects':
return {
objectNameSingular: 'object',
objectNamePlural: objectName,
objectNamePlural: 'objects',
id: queryAction[1],
};
case 'relations':
return {
objectNameSingular: 'relation',
objectNamePlural: objectName,
objectNameSingular: 'relationMetadata',
objectNamePlural: 'relationMetadata',
id: queryAction[1],
};
default:
@ -47,11 +47,14 @@ export const parseMetadataPath = (
} else {
switch (objectName) {
case 'fields':
return { objectNameSingular: 'field', objectNamePlural: objectName };
return { objectNameSingular: 'field', objectNamePlural: 'fields' };
case 'objects':
return { objectNameSingular: 'object', objectNamePlural: objectName };
return { objectNameSingular: 'object', objectNamePlural: 'objects' };
case 'relations':
return { objectNameSingular: 'relation', objectNamePlural: objectName };
return {
objectNameSingular: 'relationMetadata',
objectNamePlural: 'relationMetadata',
};
default:
return { objectNameSingular: '', objectNamePlural: '' };
}

View File

@ -7,14 +7,18 @@ import {
Res,
Patch,
Put,
UseGuards,
} from '@nestjs/common';
import { Request, Response } from 'express';
import { RestApiMetadataService } from 'src/engine/api/rest/metadata/rest-api-metadata.service';
import { cleanGraphQLResponse } from 'src/engine/api/rest/utils/clean-graphql-response.utils';
import { JwtAuthGuard } from 'src/engine/guards/jwt-auth.guard';
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
@Controller('rest/metadata/*')
@UseGuards(JwtAuthGuard, WorkspaceAuthGuard)
export class RestApiMetadataController {
constructor(
private readonly restApiMetadataService: RestApiMetadataService,