Я реализую фильтр в TypeGraphQL, и я сначала проверяю, есть ли у класса свойство, запрошенное пользователем для фильтрации. Я пытаюсь использовать hasOwnProperty, но он всегда возвращает false, даже если свойство является правильным.
Запрос в Resolver:
@Query(() => [Dog] )
async dogs(
@Arg('filter') filter: FilterInput
): Promise<Dog []> {
console.log(filter.field)
console.log(Dog.prototype.hasOwnProperty(filter.field))
const dogs = await Dog.find({where: {[filter.field]: `${filter.value}`}})
return dogs
}
Dog Entity:
@ObjectType()
@Entity()
export class Dog extends BaseEntity {
@Field(() => ID)
@PrimaryGeneratedColumn()
id: number
@Field()
@Column()
name: string
@Field()
info(@Root() parent: Dog): string {
return `gender: ${parent.gender} ; name: ${parent.name}`
}
@Field()
@Column()
gender: string
}
Тип входного фильтра:
import { InputType, Field } from "type-graphql";
@InputType()
export class FilterInput {
@Field()
field: string
@Field()
value: string
}