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. Укажите только одно уникальное поле и значение.

0 ответов

Другие вопросы по тегам