-
Notifications
You must be signed in to change notification settings - Fork 0
Examples
Kamil Dąbrowski edited this page Oct 18, 2018
·
1 revision
All examples below were generated with same Schema:
{"data":{"__schema":{"types":[{"possibleTypes":null,"name":"__Directive","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":{"ofType":null,"name":"__InputValue","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"args","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"description","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"__DirectiveLocation","kind":"ENUM"},"name":null,"kind":"LIST"},"name":"locations","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"name","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":"onField","isDeprecated":true,"description":null,"deprecationReason":"Check `locations` field for enum value FIELD","args":[]},{"type":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":"onFragment","isDeprecated":true,"description":null,"deprecationReason":"Check `locations` field for enum value FRAGMENT_SPREAD","args":[]},{"type":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":"onOperation","isDeprecated":true,"description":null,"deprecationReason":"Check `locations` field for enum value OPERATION","args":[]}],"enumValues":null,"description":"Represents a directive"},{"possibleTypes":null,"name":"__DirectiveLocation","kind":"ENUM","interfaces":null,"inputFields":null,"fields":null,"enumValues":[{"name":"FIELD","isDeprecated":false,"description":null,"deprecationReason":null},{"name":"FRAGMENT_DEFINITION","isDeprecated":false,"description":null,"deprecationReason":null},{"name":"FRAGMENT_SPREAD","isDeprecated":false,"description":null,"deprecationReason":null},{"name":"INLINE_FRAGMENT","isDeprecated":false,"description":null,"deprecationReason":null},{"name":"MUTATION","isDeprecated":false,"description":null,"deprecationReason":null},{"name":"QUERY","isDeprecated":false,"description":null,"deprecationReason":null},{"name":"SUBSCRIPTION","isDeprecated":false,"description":null,"deprecationReason":null}],"description":null},{"possibleTypes":null,"name":"__EnumValue","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"deprecationReason","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"description","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":"isDeprecated","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"name","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"__Field","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":{"ofType":null,"name":"__InputValue","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"args","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"deprecationReason","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"description","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":"isDeprecated","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"name","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"__Type","kind":"OBJECT"},"name":"type","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"__InputValue","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"defaultValue","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"description","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"name","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"__Type","kind":"OBJECT"},"name":"type","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"__Schema","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":{"ofType":null,"name":"__Directive","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"directives","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"__Type","kind":"OBJECT"},"name":"mutationType","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"__Type","kind":"OBJECT"},"name":"queryType","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"__Type","kind":"OBJECT"},"name":"subscriptionType","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"__Type","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"types","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":"Represents a schema"},{"possibleTypes":null,"name":"__Type","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"description","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"__EnumValue","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"enumValues","isDeprecated":false,"description":null,"deprecationReason":null,"args":[{"type":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":"includeDeprecated","description":null,"defaultValue":"false"}]},{"type":{"ofType":{"ofType":null,"name":"__Field","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"fields","isDeprecated":false,"description":null,"deprecationReason":null,"args":[{"type":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":"includeDeprecated","description":null,"defaultValue":"false"}]},{"type":{"ofType":{"ofType":null,"name":"__InputValue","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"inputFields","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"__Type","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"interfaces","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"kind","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"name","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"__Type","kind":"OBJECT"},"name":"ofType","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"__Type","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"possibleTypes","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":"Represents scalars, interfaces, object types, unions, enums in the system"},{"possibleTypes":null,"name":"Balance","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"balanceDen","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"balanceNum","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"DateTime","kind":"SCALAR"},"name":"lastUpdateAt","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"sharedPaymentCount","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"transferCount","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"unseenUpdateCount","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":"user1HasMore","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"user1Id","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"user2Id","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"BalanceToOtherUser","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":"iHaveMore","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"DateTime","kind":"SCALAR"},"name":"lastUpdateAt","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"User","kind":"OBJECT"},"name":"otherUser","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"otherUserId","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"sharedPaymentCount","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"transferCount","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"unseenUpdateCount","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Float","kind":"SCALAR"},"name":"value","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"Boolean","kind":"SCALAR","interfaces":null,"inputFields":null,"fields":null,"enumValues":null,"description":"The `Boolean` scalar type represents `true` or `false`."},{"possibleTypes":null,"name":"DateTime","kind":"SCALAR","interfaces":null,"inputFields":null,"fields":null,"enumValues":null,"description":"The `DateTime` scalar type represents a date and time in the UTC\ntimezone. Format is `YYYY-MM-DD HH:MM:SS`."},{"possibleTypes":null,"name":"Float","kind":"SCALAR","interfaces":null,"inputFields":null,"fields":null,"enumValues":null,"description":"The `Float` scalar type represents signed double-precision fractional\nvalues as specified by\n[IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point)."},{"possibleTypes":null,"name":"ID","kind":"SCALAR","interfaces":null,"inputFields":null,"fields":null,"enumValues":null,"description":"The `ID` scalar type represents a unique identifier, often used to\nrefetch an object or as key for a cache. The ID type appears in a JSON\nresponse as a String; however, it is not intended to be human-readable.\nWhen expected as an input type, any string (such as `\"4\"`) or integer\n(such as `4`) input value will be accepted as an ID."},{"possibleTypes":null,"name":"Int","kind":"SCALAR","interfaces":null,"inputFields":null,"fields":null,"enumValues":null,"description":"The `Int` scalar type represents non-fractional signed whole numeric values.\nInt can represent values between `-(2^53 - 1)` and `2^53 - 1` since it is\nrepresented in JSON as double-precision floating point numbers specified\nby [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point)."},{"possibleTypes":null,"name":"RootMutationType","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"UserTransaction","kind":"OBJECT"},"name":"addTransaction","isDeprecated":false,"description":null,"deprecationReason":null,"args":[{"type":{"ofType":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"amount","description":null,"defaultValue":null},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"description","description":null,"defaultValue":null},{"type":{"ofType":null,"name":"DateTime","kind":"SCALAR"},"name":"paidAt","description":null,"defaultValue":null},{"type":{"ofType":{"ofType":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":null,"kind":"LIST"},"name":null,"kind":"NON_NULL"},"name":"payeeIds","description":null,"defaultValue":null},{"type":{"ofType":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"payorId","description":null,"defaultValue":null},{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"LIST"},"name":"tags","description":null,"defaultValue":null},{"type":{"ofType":{"ofType":null,"name":"TransactionType","kind":"ENUM"},"name":null,"kind":"NON_NULL"},"name":"transactionType","description":null,"defaultValue":null}]},{"type":{"ofType":null,"name":"RegisteredUser","kind":"OBJECT"},"name":"registerUser","isDeprecated":false,"description":null,"deprecationReason":null,"args":[{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"email","description":null,"defaultValue":null},{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"name","description":null,"defaultValue":null},{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"password","description":null,"defaultValue":null}]},{"type":{"ofType":null,"name":"Session","kind":"OBJECT"},"name":"signIn","isDeprecated":false,"description":null,"deprecationReason":null,"args":[{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"email","description":null,"defaultValue":null},{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"password","description":null,"defaultValue":null}]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"RootQueryType","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"User","kind":"OBJECT"},"name":"currentUser","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"User","kind":"OBJECT"},"name":"user","isDeprecated":false,"description":null,"deprecationReason":null,"args":[{"type":{"ofType":{"ofType":null,"name":"ID","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"id","description":null,"defaultValue":null}]},{"type":{"ofType":{"ofType":null,"name":"User","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"users","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"RegisteredUser","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"id","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"Session","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"id","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"name","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"token","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"String","kind":"SCALAR","interfaces":null,"inputFields":null,"fields":null,"enumValues":null,"description":"The `String` scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text."},{"possibleTypes":null,"name":"Transaction","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"Float","kind":"SCALAR"},"name":"amount","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"description","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"id","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"DateTime","kind":"SCALAR"},"name":"paidAt","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":null,"kind":"LIST"},"name":"payeeIds","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"User","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"payees","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"payorId","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"LIST"},"name":"tags","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"TransactionType","kind":"ENUM"},"name":"transactionType","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"TransactionType","kind":"ENUM","interfaces":null,"inputFields":null,"fields":null,"enumValues":[{"name":"SHARED","isDeprecated":false,"description":null,"deprecationReason":null},{"name":"TRANSFER","isDeprecated":false,"description":null,"deprecationReason":null}],"description":null},{"possibleTypes":null,"name":"User","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":{"ofType":{"ofType":null,"name":"BalanceToOtherUser","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":null,"kind":"NON_NULL"},"name":"balances","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"email","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"id","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"name","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":{"ofType":null,"name":"UserTransaction","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":null,"kind":"NON_NULL"},"name":"transactions","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null},{"possibleTypes":null,"name":"UserTransaction","kind":"OBJECT","interfaces":[],"inputFields":null,"fields":[{"type":{"ofType":null,"name":"Float","kind":"SCALAR"},"name":"amount","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"String","kind":"SCALAR"},"name":"description","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":"id","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"DateTime","kind":"SCALAR"},"name":"paidAt","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"Int","kind":"SCALAR"},"name":null,"kind":"LIST"},"name":"payeeIds","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"User","kind":"OBJECT"},"name":null,"kind":"LIST"},"name":"payees","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":{"ofType":null,"name":"String","kind":"SCALAR"},"name":null,"kind":"LIST"},"name":"tags","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]},{"type":{"ofType":null,"name":"TransactionType","kind":"ENUM"},"name":"transactionType","isDeprecated":false,"description":null,"deprecationReason":null,"args":[]}],"enumValues":null,"description":null}],"subscriptionType":null,"queryType":{"name":"RootQueryType"},"mutationType":{"name":"RootMutationType"},"directives":[{"name":"include","locations":["INLINE_FRAGMENT","FRAGMENT_SPREAD","FIELD"],"description":"Directs the executor to include this field or fragment only when the `if` argument is true.\"","args":[{"type":{"ofType":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"if","description":"Included when true.","defaultValue":null}]},{"name":"skip","locations":["INLINE_FRAGMENT","FRAGMENT_SPREAD","FIELD"],"description":"Directs the executor to skip this field or fragment when the `if` argument is true.","args":[{"type":{"ofType":{"ofType":null,"name":"Boolean","kind":"SCALAR"},"name":null,"kind":"NON_NULL"},"name":"if","description":"Skipped when true.","defaultValue":null}]}]}}}
Input is always GraphQL query + some parameters (see CodeEmitterConfig
) and output is Elm code.
Note: nullable fields are presented in Elm with Maybe
Input query:
query {
currentUser? {
balances {
value?
iHaveMore?
}
}
}
Output Elm code:
import GraphQL.Request.Builder exposing (..)
{-| Decoder for query:
query {
currentUser? {
balances {
value?
iHaveMore?
}
}
}
-}
someRequestQuery : Request Query (Maybe Float)
someRequestQuery =
extract
(field "currentUser"
[]
(nullable <|
(extract
(field "balances"
[]
( object QBalanceToOtherUser
|> with (field "value" [] (nullable <| float))
|> with (field "iHaveMore" [] (nullable <| bool))
)
)
)
)
)
|> queryDocument
|> request ()
Note: record aliases (QUserTransaction
, QUser1
, QUser2
) are created and automatically named based on schema. Also, there is decodeDateTime
function emitted for type backend Date
which is uknown to Elm.
Input query:
query {
currentUser {
balances {
otherUser {
id
name
}
value
iHaveMore
sharedPaymentCount
transferCount
unseenUpdateCount
}
transactions{
amount
description
tags
transactionType
paidAt
payeeIds
payees {
id
}
}
}
}
Output Elm code:
import GraphQL.Request.Builder exposing (..)
import Data.Transaction exposing (TransactionType)
{-| Decoder for query:
query {
currentUser? {
balances {
otherUser? {
id
name
}
value?
iHaveMore?
sharedPaymentCount?
transferCount?
unseenUpdateCount?
}
transactions {
amount?
description?
tags?
transactionType?
paidAt?
payeeIds?
payees? {
id
}
}
}
}
-}
someRequestQuery : Request Query (Maybe QBalanceToOtherUser)
someRequestQuery =
extract
(field "currentUser"
[]
(nullable <|
( object Maybe (QUser)
|> with (field "balances"
[]
( object QBalanceToOtherUser
|> with (field "otherUser"
[]
(nullable <|
( object Maybe (QUser1)
|> with (field "id" [] int)
|> with (field "name" [] string)
)
)
)
|> with (field "value" [] (nullable <| float))
|> with (field "iHaveMore" [] (nullable <| bool))
|> with (field "sharedPaymentCount" [] (nullable <| int))
|> with (field "transferCount" [] (nullable <| int))
|> with (field "unseenUpdateCount" [] (nullable <| int))
)
)
|> with (field "transactions"
[]
( object QUserTransaction
|> with (field "amount" [] (nullable <| float))
|> with (field "description" [] (nullable <| string))
|> with (field "tags" [] (nullable <| string))
|> with (field "transactionType" [] (nullable <| decodeTransactionType))
|> with (field "paidAt" [] (nullable <| decodeDateTime))
|> with (field "payeeIds" [] (nullable <| int))
|> with (field "payees"
[]
(nullable <|
(extract
(field "id" [] int
)
)
)
)
)
)
)
)
)
|> queryDocument
|> request ()
type alias QBalanceToOtherUser =
{ otherUser : Maybe (QUser1)
, value : Maybe Float
, iHaveMore : Maybe Bool
, sharedPaymentCount : Maybe Int
, transferCount : Maybe Int
, unseenUpdateCount : Maybe Int
}
decodeDateTime = 0
type alias QUserTransaction =
{ amount : Maybe Float
, description : Maybe String
, tags : Maybe String
, transactionType : Maybe TransactionType
, paidAt : Maybe QDateTime
, payeeIds : Maybe Int
, payees : Maybe (QUser2)
}
type alias QUser1 =
{ id : Int
, name : String
}
type alias QUser2 =
{ id : Int
}
Note: mutation call with a record argument
Input query:
mutation($theAmount: Float) {
addTransaction(amount: $theAmount) {
id
}
}
Output Elm code:
import GraphQL.Request.Builder exposing (..)
import GraphQL.Request.Builder.Arg as Arg
import GraphQL.Request.Builder.Var as Var
{-| Decoder for query:
mutation($theAmount: Float) {
addTransaction?(amount: $theAmount) {
id?
}
}
-}
someRequestQuery : SomeRequestInput a -> Request Mutation (Maybe Int)
someRequestQuery input =
let
varTheAmount =
Var.optional "theAmount" .theAmount Var.float 0.0
in
extract
(field "addTransaction"
[ ( "amount", Arg.variable varTheAmount) ]
(extract
(field "id" [] (nullable <| int)
)
)
)
|> mutationDocument
|> request input
type alias SomeRequestInput vars =
{ vars
| theAmount : Maybe Float
}
Note: see how all nullable types are reduced to just one Maybe
field - in result it is Maybe Int
Input query:
query {
currentUser {
transactions {
payees {
transactions {
payees {
id
}
}
}
}
}
}
import GraphQL.Request.Builder exposing (..)
{-| Decoder for query:
query {
currentUser? {
transactions {
payees? {
transactions {
payees? {
id
}
}
}
}
}
}
-}
someRequestQuery : Request Query (Maybe Int)
someRequestQuery =
extract
(field "currentUser"
[]
(extract
(field "transactions"
[]
(extract
(field "payees"
[]
(extract
(field "transactions"
[]
(extract
(field "payees"
[]
(nullable <|
(extract
(field "id" [] int
)
)
)
)
)
)
)
)
)
)
)
)
|> queryDocument
|> request ()