From 94c6c5e46ed0f7c57b39da0e4d4e4ce3bdc454ba Mon Sep 17 00:00:00 2001 From: Joan Reyero Date: Wed, 18 Jan 2023 11:57:58 +0100 Subject: [PATCH 1/3] Added the special type --- backend/src/database/attributes/types.ts | 1 + .../migrations/U1674038525__specialMemberAttribute.sql | 4 ++++ .../migrations/V1674038525__specialMemberAttribute.sql | 1 + backend/src/services/memberAttributeSettingsService.ts | 2 ++ 4 files changed, 8 insertions(+) create mode 100644 backend/src/database/migrations/U1674038525__specialMemberAttribute.sql create mode 100644 backend/src/database/migrations/V1674038525__specialMemberAttribute.sql diff --git a/backend/src/database/attributes/types.ts b/backend/src/database/attributes/types.ts index 13d147d454..9c263e0101 100644 --- a/backend/src/database/attributes/types.ts +++ b/backend/src/database/attributes/types.ts @@ -6,4 +6,5 @@ export enum AttributeType { URL = 'url', DATE = 'date', MULTI_SELECT = 'multiSelect', + SPECIAL = 'special', } diff --git a/backend/src/database/migrations/U1674038525__specialMemberAttribute.sql b/backend/src/database/migrations/U1674038525__specialMemberAttribute.sql new file mode 100644 index 0000000000..7fa261d235 --- /dev/null +++ b/backend/src/database/migrations/U1674038525__specialMemberAttribute.sql @@ -0,0 +1,4 @@ +ALTER TYPE public."memberAttributeSettings_type" RENAME TO "memberAttributeSettings_type_old"; +CREATE TYPE "enum_memberAttributeSettings_type" AS ENUM ('boolean', 'number', 'email', 'string', 'url', 'date', 'multiSelect'); +ALTER TABLE public."memberAttributeSettings" ALTER COLUMN type TYPE "memberAttributeSettings_type" USING type::text::"memberAttributeSettings_type"; +DROP TYPE "memberAttributeSettings_type_old"; \ No newline at end of file diff --git a/backend/src/database/migrations/V1674038525__specialMemberAttribute.sql b/backend/src/database/migrations/V1674038525__specialMemberAttribute.sql new file mode 100644 index 0000000000..f04f94a14f --- /dev/null +++ b/backend/src/database/migrations/V1674038525__specialMemberAttribute.sql @@ -0,0 +1 @@ +ALTER TYPE "enum_memberAttributeSettings_type" ADD VALUE 'special'; diff --git a/backend/src/services/memberAttributeSettingsService.ts b/backend/src/services/memberAttributeSettingsService.ts index d33db96b0d..498d65c208 100644 --- a/backend/src/services/memberAttributeSettingsService.ts +++ b/backend/src/services/memberAttributeSettingsService.ts @@ -109,6 +109,8 @@ export default class MemberAttributeSettingsService { return MemberAttributeSettingsService.isNumber(value) case AttributeType.MULTI_SELECT: return MemberAttributeSettingsService.isMultiSelect(value, inputs.options) + case AttributeType.SPECIAL: + return true default: return false } From 80d752fe9a505036aab6aaefb278ab756cf8a589 Mon Sep 17 00:00:00 2001 From: Joan Reyero Date: Wed, 18 Jan 2023 13:22:20 +0100 Subject: [PATCH 2/3] Filter out the special attributes --- backend/src/services/memberService.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/src/services/memberService.ts b/backend/src/services/memberService.ts index 87b895cf9c..c852b35fdf 100644 --- a/backend/src/services/memberService.ts +++ b/backend/src/services/memberService.ts @@ -21,6 +21,7 @@ import { } from '../serverless/utils/nodeWorkerSQS' import { LoggingBase } from './loggingBase' import { ExportableEntity } from '../serverless/microservices/nodejs/messageTypes' +import { AttributeType } from '../database/attributes/types' export default class MemberService extends LoggingBase { options: IServiceOptions @@ -638,7 +639,9 @@ export default class MemberService extends LoggingBase { async query(data, exportMode = false) { const memberAttributeSettings = ( await MemberAttributeSettingsRepository.findAndCountAll({}, this.options) - ).rows + ).rows.filter( + (setting) => setting.type !== AttributeType.SPECIAL, + ) const advancedFilter = data.filter const orderBy = data.orderBy const limit = data.limit From 285da154ad0671dc147e1125ee7077252371096e Mon Sep 17 00:00:00 2001 From: Joan Reyero Date: Wed, 18 Jan 2023 14:59:18 +0100 Subject: [PATCH 3/3] Format --- backend/src/services/memberService.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/backend/src/services/memberService.ts b/backend/src/services/memberService.ts index c852b35fdf..2db7a6b63d 100644 --- a/backend/src/services/memberService.ts +++ b/backend/src/services/memberService.ts @@ -639,9 +639,7 @@ export default class MemberService extends LoggingBase { async query(data, exportMode = false) { const memberAttributeSettings = ( await MemberAttributeSettingsRepository.findAndCountAll({}, this.options) - ).rows.filter( - (setting) => setting.type !== AttributeType.SPECIAL, - ) + ).rows.filter((setting) => setting.type !== AttributeType.SPECIAL) const advancedFilter = data.filter const orderBy = data.orderBy const limit = data.limit