Prisma - где селектор по типу с двумя уникальными полями
Я пытаюсь реализовать преобразователь, который будет проверять, существует ли в базе данных пользователь с данным логином. Но мне сложно с селектором where в Prisma.
Итак, у меня есть тип User:
type User {
UserID: ID! @id
Login: String! @unique
Password: String!
Phone: String!
Mail: String!
Comments: [Comment!]
@relation(
name: "AllCommentsOfUser"
fields: [UserID]
references: [CommentID]
)
Likes: [Like!]
@relation(name: "AllLikesOfUser", fields: [UserID], references: [LikeID])
createdAt: DateTime! @createdAt
}
Это запрос, созданный Prisma
user(where: UserWhereUniqueInput!): User
input UserWhereUniqueInput {
UserID: ID
Login: String
}
В функции входа в систему я пытаюсь проверить, существует ли пользователь с данным логином в моей базе данных:
async login(parent, { email, password, username }, ctx, info) {
const user = await ctx.prisma.user({ username }); // Option 1
const user = await ctx.prisma.user({ Login: username }); // Option 2
if (!user) {
throw new Error(`No such user found for email: ${username}`);
}
const valid = await bcrypt.compare(password, user.password);
if (!valid) {
throw new Error("Invalid password");
}
return {
token: jwt.sign({ userId: user.id }, process.env.JWT_SECRET),
user,
};
},
},
Каждый раз, когда я получаю следующее сообщение об ошибке:
Вы указали недопустимый аргумент для селектора where на User. Укажите только одно уникальное поле и значение.