Je suis novice en graphql et j'ai du mal avec une requête. Je veux retourner un utilisateur par son adresse email.
J'ai défini un type appelé V1User qui comporte les champs suivants id, email, mot de passe, rôle
Que faut-il modifier dans cette requête pour renvoyer un utilisateur sur la base de son adresse électronique ?
query GetAllV1User {
viewer {
allV1Users{
edges {
node {
id
email
role
createdAt
modifiedAt
}
}
}
}
}
J'ai essayé cette requête
query getV1UserQuery($email: String!) {
getV1User(email: $email) {
id
email
}
}
Avec ces paramètres
{"email": "test@test.com"}
Mais les erreurs suivantes apparaissent
{
"errors": [
{
"message": "Unknown argument \"email\" on field \"getV1User\" of type \"Query\".",
"locations": [
{
"line": 2,
"column": 13
}
],
"name": "GraphQLError"
},
{
"message": "Field \"getV1User\" argument \"id\" of type \"ID!\" is required but not provided.",
"locations": [
{
"line": 2,
"column": 3
}
],
"name": "GraphQLError"
}
]
}
Mon schéma est le suivant
Name Type Constraints
id ID NonNull Unique
modifiedAt DateTime NonNull
createdAt DateTime NonNull
role String NonNull
password String NonNull
email String NonNull Unique Indexed
T
Bonjour
Cette requête a résolu mon problème
query getUserForEmailAddressAndPassword($where: V1UserWhereArgs) {
viewer {
allV1Users(where: $where) {
edges {
node {
email
id
createdAt
password
modifiedAt
role
}
}
}
}
}
Avec ces variables d'interrogation
{"where": {"email": {"eq" : "test@test.com"}, "password": {"eq":"te2st"}}}