-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathschema.graphql
80 lines (69 loc) · 1.35 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
type Query {
getAuthor(name: ID!): Author
getAuthors: AuthorsResult!
getPosts(author: ID!): PostsResult!
getAllPosts: PostsResult!
getPost(id: ID!): Post!
}
type Mutation {
createAuthor(author: CreateAuthorInput): Author!
createPost(post: CreatePostInput): Post!
createComment(comment: CreateCommentInput): Comment!
updatePost(post: UpdatePostInput): Post!
deletePost(id: ID!): Boolean!
}
type Subscription {
onPostCreated(authorName: ID!): Post @aws_subscribe(mutations: ["createPost"])
}
type Post {
id: ID!
title: String!
content: String!
authorName: String!
author: Author!
comments: [Comment!]
publishDate: AWSDate!
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
}
input CreatePostInput {
title: String!
content: String!
authorName: String!
publishDate: AWSDate!
}
input UpdatePostInput {
id: ID!
title: String
content: String
publishDate: AWSDate!
}
type Author {
name: ID!
email: AWSEmail!
posts: [Post!]
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
}
type PostsResult {
items: [Post!]!
nextToken: String
}
type AuthorsResult {
items: [Author!]!
nextToken: String
}
input CreateAuthorInput {
name: ID!
email: AWSEmail!
}
type Comment {
id: ID!
message: String!
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
}
input CreateCommentInput {
message: String!
postId: String!
}