-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema.graphql
114 lines (92 loc) · 1.92 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
input LoginInput {
username: String
password: String
clientMutationId: String
}
type LoginPayload {
viewer: User
userId: ID
clientMutationId: String
}
# ...
type Mutation {
signup(input: SignupInput!): SignupPayload
login(input: LoginInput!): LoginPayload
logout: User
}
# 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
}
# Post fetched from an external source
type Post implements Node {
# The ID of an object
id: ID!
postId: String
source: String
author: String
title: String
content: String
link: String
time: String
}
# A connection to a list of items.
type PostConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [PostEdge]
}
# An edge in a connection.
type PostEdge {
# The item at the end of the edge
node: Post
# A cursor for use in pagination
cursor: String!
}
type Query {
viewer: User
post(postId: ID): Post
posts: [Post]
# Fetches an object given its ID
node(
# The ID of an object
id: ID!
): Node
users: [User]
}
input SignupInput {
email: String
username: String
password: String
clientMutationId: String
}
type SignupPayload {
viewer: User
clientMutationId: String
}
# A registered user of the application
type User implements Node {
# The ID of an object
id: ID!
# id of user in db
userId: String
# email of user
email: String
# username of user in db
username: String
# Posts listed under the user
posts(after: String, first: Int, before: String, last: Int): PostConnection
}