primait/elm-graphql-client/1.0.0

NOTE: the latest version is 1.1.0

GraphqlClient.Client

This is a Graphql client with automatic retry

Model name decodesTo msg
-> List Authentication
-> (Model name decodesTo msg -> model -> model)
-> model
-> ( model, Cmd msg )

funzione da chiamare quando il chiamante è riuscito a recuperare un nuovo token Questa funzione triggera l'esecuzione di tutte le query che erano fallite fino a questo punto ed erano rimaste in attesa di nuova autenticazione I parametri sono:

  • il modello del componente
  • una lista di Authentication, tuple di (header name, header value) espressi tutti e due come String
  • una closure per aggiornare il modello del chiamante con il modello del componente. tipo (\gqlClientModel -> {model | gqlClientModel = gqlClientModel})
  • il modello del chiamante
Msg name decodesTo
-> Model name decodesTo msg
-> Cmd msg
-> (model -> name -> decodesTo -> ( model, Cmd msg ))
-> (model -> name -> Error decodesTo -> model)
-> (Model name decodesTo msg -> model -> model)
-> model
-> ( model, Cmd msg )

HOF che permette il wiring di un componente GqlClient con il chiamante. Va messo nell'Update del chiamante dove si ricevono i messaggi del componente La sua funzione principale è quella di evitare che il chiamante debba ricordare tutti i dettagli implementativi di integrazione, con il rischio di dimenticarsi dei pezzi

I parametri sono:

  • il messaggio del componente
  • il modello del componente
  • il Cmd Msg del chiamante per ottenere un nuovo token
  • una closure per gestire il risultato di una query andata a buon fine. La closure accetta il modello del chiamante e il tipo di risposta della query eseguita (decodesTo)
  • una closure per gestire il risultato di una query andata in errore. La closure accetta il modello del chiamante e un Graphql.Http.Error
  • una closure per aggiornare il modello del chiamante con il modello del componente. tipo (\gqlClientModel -> {model | gqlClientModel = gqlClientModel})
  • il modello del chiamante
name
-> List Authentication
-> Model name decodesTo msg
-> SelectionSet decodesTo RootMutation
-> ( Model name decodesTo msg, Cmd (Msg name decodesTo) )

funzione che permette di eseguire una mutation graphql ritorna una tupla con il modello aggiornato del client (da inserire nel modello del chiamante) e il comando da eseguire. Il comando va ovviamente passato al runtime elm

I parametri sono:

  • il nome della mutation
  • una lista di header di autenticazione (name: String, value: String)
  • il modello del componente
  • il selection set della query da eseguire
name
-> List Authentication
-> Model name decodesTo msg
-> SelectionSet decodesTo RootQuery
-> ( Model name decodesTo msg, Cmd (Msg name decodesTo) )

funzione che permette di eseguire una query graphql ritorna una tupla con il modello aggiornato del client (da inserire nel modello del chiamante) e il comando da eseguire. Il comando va ovviamente passato al runtime elm

I parametri sono:

  • il nome della query
  • una lista di header di autenticazione (name: String, value: String)
  • il modello del componente
  • il selection set della query da eseguire