This repository was archived by the owner on Sep 27, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 66
Expand file tree
/
Copy pathschema.graphql
More file actions
140 lines (115 loc) · 2.65 KB
/
schema.graphql
File metadata and controls
140 lines (115 loc) · 2.65 KB
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
type Query {
viewer: User
"""Fetches an object given its ID"""
node(
"""The ID of an object"""
id: ID!
): Node
}
type User implements Node {
"""The ID of an object"""
id: ID!
todos(status: String = "any", after: String, first: Int, before: String, last: Int): TodoConnection
totalCount: Int
completedCount: Int
isAppending: Boolean!
}
"""An object with an ID"""
interface Node {
"""The id of the object."""
id: ID!
}
"""A connection to a list of items."""
type TodoConnection {
"""Information to aid in pagination."""
pageInfo: PageInfo!
"""A list of edges."""
edges: [TodoEdge]
}
"""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
}
"""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!
}
type Todo implements Node {
"""The ID of an object"""
id: ID!
text: String
complete: Boolean
}
type Mutation {
addTodo(input: AddTodoInput!): AddTodoPayload
changeTodoStatus(input: ChangeTodoStatusInput!): ChangeTodoStatusPayload
markAllTodos(input: MarkAllTodosInput!): MarkAllTodosPayload
removeCompletedTodos(input: RemoveCompletedTodosInput!): RemoveCompletedTodosPayload
removeTodo(input: RemoveTodoInput!): RemoveTodoPayload
renameTodo(input: RenameTodoInput!): RenameTodoPayload
setAppending(appending: Boolean!): User
}
type AddTodoPayload {
todoEdge: TodoEdge
viewer: User
clientMutationId: String
}
input AddTodoInput {
text: String!
clientMutationId: String
}
type ChangeTodoStatusPayload {
todo: Todo
viewer: User
clientMutationId: String
}
input ChangeTodoStatusInput {
complete: Boolean!
id: ID!
clientMutationId: String
}
type MarkAllTodosPayload {
changedTodos: [Todo]
viewer: User
clientMutationId: String
}
input MarkAllTodosInput {
complete: Boolean!
clientMutationId: String
}
type RemoveCompletedTodosPayload {
deletedTodoIds: [String]
viewer: User
clientMutationId: String
}
input RemoveCompletedTodosInput {
clientMutationId: String
}
type RemoveTodoPayload {
deletedTodoId: ID
viewer: User
clientMutationId: String
}
input RemoveTodoInput {
id: ID!
clientMutationId: String
}
type RenameTodoPayload {
todo: Todo
clientMutationId: String
}
input RenameTodoInput {
id: ID!
text: String!
clientMutationId: String
}