etalab / radar-tech

Développer un questionnaire en ligne destinés aux agents/informaticien·nes travaillant dans la fonction publique.
2 stars 4 forks source link

Front : Avoir une application de test qui post un résultat au back #3

Closed basilesimon closed 3 years ago

basilesimon commented 3 years ago

Cette issue s'accompagne d'une PR coté front-end

Cette issue cherche une solution pour poster les résultats du sondage à la DB.

L'on décrit des mutations dans le backend, que je matche coté front-end.

L'épine dans le pied, pour le moment, c'est que Gatsby n'a pas l'air content du tout de s'occuper des mutations.

J'ai donc eu recours à graphql-request, mais cela requiert de créer un client graphQL pour les besoins de poster.

Quand l'utlisateur a fini de remplir le sondage, voici la fonction qui est lancée :

async onComplete(survey, options) {
    console.log(`Data a POSTer: `, survey.data);

    const endpoint = "http://fast-snow-hulu.app.etalab.studio/graphql";
    const graphQLClient = new GraphQLClient(endpoint, {});
    const mutation = gql`
      mutation CreateAnswer(
        $email: String!
        $demo_age: String
        $demo_genre: String
        $education_formation: String
      ) {
        createAnswer(
          email: $email
          demo_age: $demo_age
          demo_genre: $demo_genre
          education_formation: $education_formation
        ) {
          email
          demo_age
          demo_genre
        }
      }
    `;

    const data = await graphQLClient
      .request(mutation, survey.data)
      .catch(error => console.log(error));
  }