From f30cbb80e7a4905bc96039cabf334a6ec8fb12de Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Sat, 29 Nov 2025 14:57:42 +0100 Subject: [PATCH] fix issue with enum, typed graphql decorator didn't work when importing enum from database --- .../src/graphql/arg/SearchContributionsFilterArgs.ts | 2 +- backend/src/graphql/enum/ContributionCycleType.ts | 2 ++ backend/src/graphql/enum/ContributionStatus.ts | 2 ++ backend/src/graphql/enum/ContributionType.ts | 2 ++ backend/src/graphql/enum/PendingTransactionState.ts | 2 ++ backend/src/graphql/enum/RoleNames.ts | 10 ++-------- .../resolver/ContributionMessageResolver.test.ts | 3 ++- .../src/graphql/resolver/ContributionResolver.test.ts | 3 ++- backend/src/graphql/resolver/ContributionResolver.ts | 4 ++-- .../src/graphql/resolver/TransactionLinkResolver.ts | 6 +++--- .../src/graphql/validator/ContributionStatusArray.ts | 2 +- .../AbstractUnconfirmedContribution.role.ts | 3 ++- .../UnconfirmedContributionAdmin.role.ts | 3 ++- .../UnconfirmedContributionAdminAddMessage.role.ts | 3 ++- .../UnconfirmedContributionUser.role.ts | 3 ++- .../UnconfirmedContributionUserAddMessage.role.ts | 3 ++- 16 files changed, 31 insertions(+), 22 deletions(-) diff --git a/backend/src/graphql/arg/SearchContributionsFilterArgs.ts b/backend/src/graphql/arg/SearchContributionsFilterArgs.ts index 727940dac..ad8b7747e 100644 --- a/backend/src/graphql/arg/SearchContributionsFilterArgs.ts +++ b/backend/src/graphql/arg/SearchContributionsFilterArgs.ts @@ -1,7 +1,7 @@ import { IsBoolean, IsPositive, IsString } from 'class-validator' import { ArgsType, Field, InputType, Int } from 'type-graphql' -import { ContributionStatus } from 'database' +import { ContributionStatus } from '@enum/ContributionStatus' import { isContributionStatusArray } from '@/graphql/validator/ContributionStatusArray' diff --git a/backend/src/graphql/enum/ContributionCycleType.ts b/backend/src/graphql/enum/ContributionCycleType.ts index abcb6a477..050a6ac0d 100644 --- a/backend/src/graphql/enum/ContributionCycleType.ts +++ b/backend/src/graphql/enum/ContributionCycleType.ts @@ -1,6 +1,8 @@ import { registerEnumType } from 'type-graphql' import { ContributionCycleType } from 'database' +export { ContributionCycleType } + registerEnumType(ContributionCycleType, { name: 'ContributionCycleType', // this one is mandatory description: 'Name of the Type of the ContributionCycle', // this one is optional diff --git a/backend/src/graphql/enum/ContributionStatus.ts b/backend/src/graphql/enum/ContributionStatus.ts index 74b1cba47..69d2e1171 100644 --- a/backend/src/graphql/enum/ContributionStatus.ts +++ b/backend/src/graphql/enum/ContributionStatus.ts @@ -1,6 +1,8 @@ import { registerEnumType } from 'type-graphql' import { ContributionStatus } from 'database' +export { ContributionStatus } + registerEnumType(ContributionStatus, { name: 'ContributionStatus', description: 'Name of the Type of the Contribution Status', diff --git a/backend/src/graphql/enum/ContributionType.ts b/backend/src/graphql/enum/ContributionType.ts index 3be0b7595..28fae333a 100644 --- a/backend/src/graphql/enum/ContributionType.ts +++ b/backend/src/graphql/enum/ContributionType.ts @@ -1,6 +1,8 @@ import { registerEnumType } from 'type-graphql' import { ContributionType } from 'database' +export { ContributionType } + registerEnumType(ContributionType, { name: 'ContributionType', description: 'Name of the Type of the Contribution', diff --git a/backend/src/graphql/enum/PendingTransactionState.ts b/backend/src/graphql/enum/PendingTransactionState.ts index e59f3fd7d..cf1a17291 100644 --- a/backend/src/graphql/enum/PendingTransactionState.ts +++ b/backend/src/graphql/enum/PendingTransactionState.ts @@ -1,6 +1,8 @@ import { registerEnumType } from 'type-graphql' import { PendingTransactionState } from 'shared' +export { PendingTransactionState } + registerEnumType(PendingTransactionState, { name: 'PendingTransactionState', // this one is mandatory description: 'State of the PendingTransaction', // this one is optional diff --git a/backend/src/graphql/enum/RoleNames.ts b/backend/src/graphql/enum/RoleNames.ts index 8ba8e1441..872b4937f 100644 --- a/backend/src/graphql/enum/RoleNames.ts +++ b/backend/src/graphql/enum/RoleNames.ts @@ -1,13 +1,7 @@ import { registerEnumType } from 'type-graphql' +import { RoleNames } from 'database' -export enum RoleNames { - UNAUTHORIZED = 'UNAUTHORIZED', - USER = 'USER', - MODERATOR = 'MODERATOR', - MODERATOR_AI = 'MODERATOR_AI', - ADMIN = 'ADMIN', - DLT_CONNECTOR = 'DLT_CONNECTOR_ROLE', -} +export { RoleNames } registerEnumType(RoleNames, { name: 'RoleNames', // this one is mandatory diff --git a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts index 673ffae15..483747b90 100644 --- a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts @@ -1,8 +1,9 @@ import { ApolloServerTestClient } from 'apollo-server-testing' -import { Contribution as DbContribution, Event as DbEvent, ContributionStatus } from 'database' +import { Contribution as DbContribution, Event as DbEvent } from 'database' import { GraphQLError } from 'graphql' import { DataSource } from 'typeorm' +import { ContributionStatus } from '@enum/ContributionStatus' import { cleanDB, resetToken, testEnvironment } from '@test/helpers' import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' diff --git a/backend/src/graphql/resolver/ContributionResolver.test.ts b/backend/src/graphql/resolver/ContributionResolver.test.ts index 98b273763..31d405942 100644 --- a/backend/src/graphql/resolver/ContributionResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionResolver.test.ts @@ -1,10 +1,11 @@ import { ApolloServerTestClient } from 'apollo-server-testing' -import { Contribution, Event as DbEvent, Transaction as DbTransaction, User, ContributionStatus } from 'database' +import { Contribution, Event as DbEvent, Transaction as DbTransaction, User } from 'database' import { Decimal } from 'decimal.js-light' import { GraphQLError } from 'graphql' import { DataSource, Equal } from 'typeorm' import { ContributionMessageType } from '@enum/ContributionMessageType' +import { ContributionStatus } from '@enum/ContributionStatus' import { Order } from '@enum/Order' import { cleanDB, diff --git a/backend/src/graphql/resolver/ContributionResolver.ts b/backend/src/graphql/resolver/ContributionResolver.ts index 7c451b5bf..8faf03480 100644 --- a/backend/src/graphql/resolver/ContributionResolver.ts +++ b/backend/src/graphql/resolver/ContributionResolver.ts @@ -1,7 +1,5 @@ import { Contribution as DbContribution, - ContributionStatus, - ContributionType, Transaction as DbTransaction, TransactionTypeId, User as DbUser, @@ -18,6 +16,7 @@ import { AdminUpdateContributionArgs } from '@arg/AdminUpdateContributionArgs' import { ContributionArgs } from '@arg/ContributionArgs' import { Paginated } from '@arg/Paginated' import { SearchContributionsFilterArgs } from '@arg/SearchContributionsFilterArgs' +import { ContributionStatus } from '@enum/ContributionStatus' import { AdminUpdateContribution } from '@model/AdminUpdateContribution' import { Contribution, ContributionListResult } from '@model/Contribution' import { OpenCreation } from '@model/OpenCreation' @@ -47,6 +46,7 @@ import { calculateDecay, Decay, fullName } from 'shared' import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const' import { ContributionMessageType } from '@enum/ContributionMessageType' +import { ContributionType } from '@enum/ContributionType' import { AppDatabase } from 'database' import { getLogger } from 'log4js' import { diff --git a/backend/src/graphql/resolver/TransactionLinkResolver.ts b/backend/src/graphql/resolver/TransactionLinkResolver.ts index b6b8f822f..eac60b9e3 100644 --- a/backend/src/graphql/resolver/TransactionLinkResolver.ts +++ b/backend/src/graphql/resolver/TransactionLinkResolver.ts @@ -3,6 +3,8 @@ import { randomBytes } from 'crypto' import { Paginated } from '@arg/Paginated' import { TransactionLinkArgs } from '@arg/TransactionLinkArgs' import { TransactionLinkFilters } from '@arg/TransactionLinkFilters' +import { ContributionType } from '@enum/ContributionType' +import { ContributionStatus } from '@enum/ContributionStatus' import { Community } from '@model/Community' import { ContributionLink } from '@model/ContributionLink' import { RedeemJwtLink } from '@model/RedeemJwtLink' @@ -12,9 +14,6 @@ import { QueryLinkResult } from '@union/QueryLinkResult' import { Decay, interpretEncryptedTransferArgs, EncryptedTransferArgs } from 'core' import { AppDatabase, Contribution as DbContribution, - ContributionCycleType, - ContributionStatus, - ContributionType, ContributionLink as DbContributionLink, FederatedCommunity as DbFederatedCommunity, DltTransaction as DbDltTransaction, @@ -26,6 +25,7 @@ import { findTransactionLinkByCode, getHomeCommunity } from 'database' +import { ContributionCycleType } from '@/graphql/enum/ContributionCycleType' import { Decimal } from 'decimal.js-light' import { Arg, Args, Authorized, Ctx, Int, Mutation, Query, Resolver } from 'type-graphql' diff --git a/backend/src/graphql/validator/ContributionStatusArray.ts b/backend/src/graphql/validator/ContributionStatusArray.ts index 65f61ec9e..dd7c93277 100644 --- a/backend/src/graphql/validator/ContributionStatusArray.ts +++ b/backend/src/graphql/validator/ContributionStatusArray.ts @@ -1,6 +1,6 @@ import { ValidationOptions, registerDecorator } from 'class-validator' -import { ContributionStatus } from 'database' +import { ContributionStatus } from '@enum/ContributionStatus' export function isContributionStatusArray(validationOptions?: ValidationOptions) { return function (object: Object, propertyName: string) { diff --git a/backend/src/interactions/updateUnconfirmedContribution/AbstractUnconfirmedContribution.role.ts b/backend/src/interactions/updateUnconfirmedContribution/AbstractUnconfirmedContribution.role.ts index 0f83821df..c3bed06ab 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/AbstractUnconfirmedContribution.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/AbstractUnconfirmedContribution.role.ts @@ -1,6 +1,7 @@ -import { Contribution, ContributionStatus, User } from 'database' +import { Contribution, User } from 'database' import { Decimal } from 'decimal.js-light' +import { ContributionStatus } from '@enum/ContributionStatus' import { Role } from '@/auth/Role' import { ContributionLogic } from '@/data/Contribution.logic' import { ContributionMessageBuilder } from '@/data/ContributionMessage.builder' diff --git a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdmin.role.ts b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdmin.role.ts index d95edf240..368abf461 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdmin.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdmin.role.ts @@ -1,5 +1,6 @@ -import { Contribution, ContributionStatus, User } from 'database' +import { Contribution, User } from 'database' +import { ContributionStatus } from '@enum/ContributionStatus' import { RIGHTS } from '@/auth/RIGHTS' import { Role } from '@/auth/Role' import { ContributionMessageBuilder } from '@/data/ContributionMessage.builder' diff --git a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdminAddMessage.role.ts b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdminAddMessage.role.ts index 780b2e401..887c2d7ad 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdminAddMessage.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdminAddMessage.role.ts @@ -1,5 +1,6 @@ -import { Contribution, ContributionStatus, User } from 'database' +import { Contribution, User } from 'database' +import { ContributionStatus } from '@enum/ContributionStatus' import { RIGHTS } from '@/auth/RIGHTS' import { Role } from '@/auth/Role' import { ContributionMessageBuilder } from '@/data/ContributionMessage.builder' diff --git a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUser.role.ts b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUser.role.ts index e32e6f413..8dee35b2c 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUser.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUser.role.ts @@ -1,5 +1,6 @@ -import { Contribution, ContributionStatus, User } from 'database' +import { Contribution, User } from 'database' +import { ContributionStatus } from '@enum/ContributionStatus' import { ContributionMessageBuilder } from '@/data/ContributionMessage.builder' import { ContributionArgs } from '@/graphql/arg/ContributionArgs' import { LogError } from '@/server/LogError' diff --git a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUserAddMessage.role.ts b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUserAddMessage.role.ts index e88c1f2ce..319639f12 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUserAddMessage.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUserAddMessage.role.ts @@ -1,5 +1,6 @@ -import { Contribution, ContributionStatus, User } from 'database' +import { Contribution, User } from 'database' +import { ContributionStatus } from '@enum/ContributionStatus' import { ContributionMessageBuilder } from '@/data/ContributionMessage.builder' import { ContributionMessageArgs } from '@/graphql/arg/ContributionMessageArgs' import { ContributionMessageType } from '@/graphql/enum/ContributionMessageType'