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 } diff --git a/backend/src/services/memberService.ts b/backend/src/services/memberService.ts index 87b895cf9c..2db7a6b63d 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,7 @@ 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