type Authentication { id: ID! createdAt: DateTime! } type BrowserSession { id: ID! user: User! lastAuthentication: Authentication createdAt: DateTime! } """ Implement the DateTime scalar The input/output is a string in RFC3339 format. """ scalar DateTime type Mutation { """ A dummy mutation so that the mutation object is not empty """ hello: Boolean! } """ Information about pagination in a connection """ type PageInfo { """ When paginating backwards, are there more items? """ hasPreviousPage: Boolean! """ When paginating forwards, are there more items? """ hasNextPage: Boolean! """ When paginating backwards, the cursor to continue. """ startCursor: String """ When paginating forwards, the cursor to continue. """ endCursor: String } type Query { currentSession: BrowserSession currentUser: User } type Subscription { """ A dump subscription to try out the websocket """ integers(step: Int! = 1): Int! } type User { id: ID! username: String! primaryEmail: UserEmail emails(after: String, before: String, first: Int, last: Int): UserEmailConnection! } type UserEmail { id: ID! email: String! createdAt: DateTime! confirmedAt: DateTime } type UserEmailConnection { """ Information to aid in pagination. """ pageInfo: PageInfo! """ A list of edges. """ edges: [UserEmailEdge!]! """ A list of nodes. """ nodes: [UserEmail!]! totalCount: Int! } """ An edge in a connection. """ type UserEmailEdge { """ A cursor for use in pagination """ cursor: String! """ The item at the end of the edge """ node: UserEmail! } schema { query: Query mutation: Mutation subscription: Subscription }