gradido/backend/src/graphql/validator/ContributionStatusArray.ts

22 lines
729 B
TypeScript

import { registerDecorator, ValidationOptions } from 'class-validator'
import { ContributionStatus } from '@enum/ContributionStatus'
export function isContributionStatusArray(validationOptions?: ValidationOptions) {
// eslint-disable-next-line @typescript-eslint/ban-types
return function (object: Object, propertyName: string) {
registerDecorator({
name: 'isContributionStatusArray',
target: object.constructor,
propertyName,
options: validationOptions,
validator: {
validate(value: ContributionStatus[]): boolean {
const validValues = Object.values(ContributionStatus)
return value.every((item) => validValues.includes(item))
},
},
})
}
}