-
Notifications
You must be signed in to change notification settings - Fork 0
/
schema.graphql
154 lines (124 loc) · 2.75 KB
/
schema.graphql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# source: http://relai-graphql.herokuapp.com/graphql
# timestamp: Wed Nov 01 2017 18:05:46 GMT+0100 (CET)
input ClearCompleteTodosInput {
userId: ID!
clientMutationId: String
}
type ClearCompleteTodosPayload {
deletedTodoIds: [ID]!
user: User!
clientMutationId: String
}
input CreateTodoInput {
userId: ID!
text: String!
clientMutationId: String
}
type CreateTodoPayload {
todoEdge: TodoEdge
user: User!
clientMutationId: String
}
input DeleteTodoInput {
userId: ID!
todoId: ID!
clientMutationId: String
}
type DeleteTodoPayload {
deletedId: ID!
user: User!
clientMutationId: String
}
input MarkTodosCompleteInput {
userId: ID!
complete: Boolean!
clientMutationId: String
}
type MarkTodosCompletePayload {
updatedTodos: [Todo]!
user: User!
clientMutationId: String
}
type Mutation {
createTodo(input: CreateTodoInput!): CreateTodoPayload
updateTodo(input: UpdateTodoInput!): UpdateTodoPayload
deleteTodo(input: DeleteTodoInput!): DeleteTodoPayload
markTodosComplete(input: MarkTodosCompleteInput!): MarkTodosCompletePayload
clearCompleteTodos(input: ClearCompleteTodosInput!): ClearCompleteTodosPayload
}
# An object with an ID
interface Node {
# The id of the object.
id: ID!
}
# Information about pagination in a connection.
type PageInfo {
# When paginating forwards, are there more items?
hasNextPage: Boolean!
# When paginating backwards, are there more items?
hasPreviousPage: Boolean!
# When paginating backwards, the cursor to continue.
startCursor: String
# When paginating forwards, the cursor to continue.
endCursor: String
}
type Query {
user(name: String!): User
# Fetches an object given its ID
node(
# The ID of an object
id: ID!
): Node
}
enum ShowType {
all
active
complete
}
# A todo item.
type Todo implements Node {
# The ID of an object
id: ID!
# The text of the todo.
text: String!
complete: Boolean!
}
# A connection to a list of items.
type TodoConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [TodoEdge]
}
# An edge in a connection.
type TodoEdge {
# The item at the end of the edge
node: Todo
# A cursor for use in pagination
cursor: String!
}
input UpdateTodoInput {
userId: ID!
id: ID!
text: String!
complete: Boolean!
clientMutationId: String
}
type UpdateTodoPayload {
todoEdge: TodoEdge
user: User!
clientMutationId: String
}
# A user.
type User implements Node {
# The ID of an object
id: ID!
# The name of the user.
name: String!
# User's todos.
todos(after: String, first: Int, before: String, last: Int, show: ShowType = all): TodoConnection
# Number of user's todos.
countTodos: Int!
# Number of user's completed todos.
countTodosComplete: Int!
}