aboutsummaryrefslogtreecommitdiffstats
path: root/graphql2/schema.graphql
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-07-27 19:48:45 +0200
committerMichael Muré <batolettre@gmail.com>2018-07-27 19:48:45 +0200
commitff2fd14e3f10a7206d4ec86f07e524cfa290e0fc (patch)
treec81ecd42f3753e0abb67e10aa031fa80dca90ac7 /graphql2/schema.graphql
parent932743ac066e8c6d76cbfc1710b0d55a78dced55 (diff)
downloadgit-bug-ff2fd14e3f10a7206d4ec86f07e524cfa290e0fc.tar.gz
wip gqlgen
Diffstat (limited to 'graphql2/schema.graphql')
-rw-r--r--graphql2/schema.graphql233
1 files changed, 233 insertions, 0 deletions
diff --git a/graphql2/schema.graphql b/graphql2/schema.graphql
new file mode 100644
index 00000000..3c24c746
--- /dev/null
+++ b/graphql2/schema.graphql
@@ -0,0 +1,233 @@
+schema {
+ query: RootQuery
+}
+
+scalar Time
+scalar Label
+
+# 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
+}
+
+# Represents an person in a git object.
+type Person {
+ # The email of the person.
+ email: String
+
+ # The name of the person.
+ name: String
+}
+
+
+type CommentConnection {
+ edges: [CommentEdge]
+ nodes: [Comment]
+ pageInfo: PageInfo!
+ totalCount: Int!
+}
+
+type CommentEdge {
+ cursor: String!
+ node: Comment!
+}
+
+interface Commentable {
+ # A list of comments associated with the object.
+ comments(
+ # Returns the elements in the list that come after the specified cursor.
+ after: String
+
+ # Returns the elements in the list that come before the specified cursor.
+ before: String
+
+ # Returns the first _n_ elements from the list.
+ first: Int
+
+ # Returns the last _n_ elements from the list.
+ last: Int
+ ): CommentConnection!
+}
+
+# Represents a comment on a bug.
+type Comment implements Authored {
+ # The author of this comment.
+ author: Person!
+
+ # The message of this comment.
+ message: String!
+}
+
+enum Status {
+ OPEN
+ CLOSED
+}
+
+# An object that has an author.
+interface Authored {
+ # The author of this object.
+ author: Person!
+}
+
+type OperationConnection {
+ edges: [OperationEdge]!
+ nodes: [OperationUnion]!
+ pageInfo: PageInfo!
+ totalCount: Int!
+}
+
+type OperationEdge {
+ cursor: String!
+ node: OperationUnion
+}
+
+# An operation applied to a bug.
+interface Operation {
+ # The operations author.
+ author: Person!
+
+ # The datetime when this operation was issued.
+ date: Time!
+}
+
+type CreateOperation implements Operation, Authored {
+ author: Person!
+ date: Time!
+
+ title: String!
+ message: String!
+}
+
+type SetTitleOperation implements Operation, Authored {
+ author: Person!
+ date: Time!
+
+ title: String!
+}
+
+type AddCommentOperation implements Operation, Authored {
+ author: Person!
+ date: Time!
+
+ message: String!
+}
+
+type SetStatusOperation implements Operation, Authored {
+ author: Person!
+ date: Time!
+
+ status: Status!
+}
+
+type LabelChangeOperation implements Operation, Authored {
+ author: Person!
+ date: Time!
+
+ added: [Label]!
+ removed: [Label]!
+}
+
+union OperationUnion =
+ CreateOperation
+ | SetTitleOperation
+ | AddCommentOperation
+ | SetStatusOperation
+ | LabelChangeOperation
+
+# The connection type for Label.
+type BugConnection {
+ # A list of edges.
+ edges: [BugEdge]!
+
+ # A list of nodes.
+ nodes: [Bug]!
+
+ # Information to aid in pagination.
+ pageInfo: PageInfo!
+
+ # Identifies the total count of items in the connection.
+ totalCount: Int!
+}
+
+# An edge in a connection.
+type BugEdge {
+ # A cursor for use in pagination.
+ cursor: String!
+
+ # The item at the end of the edge.
+ node: Bug
+}
+
+type Bug implements Authored, Commentable {
+ id: String!
+ humanId: String!
+ title: String!
+ status: Status!
+
+ # A list of labels associated with the repository.
+ labels: [Label]!
+
+ comments(
+ # Returns the elements in the list that come after the specified cursor.
+ after: String
+
+ # Returns the elements in the list that come before the specified cursor.
+ before: String
+
+ # Returns the first _n_ elements from the list.
+ first: Int
+
+ # Returns the last _n_ elements from the list.
+ last: Int
+
+ # If provided, searches comments by name and description.
+ query: String
+ ): CommentConnection!
+
+ operations(
+ # Returns the elements in the list that come after the specified cursor.
+ after: String
+
+ # Returns the elements in the list that come before the specified cursor.
+ before: String
+
+ # Returns the first _n_ elements from the list.
+ first: Int
+
+ # Returns the last _n_ elements from the list.
+ last: Int
+
+ # If provided, searches operations by name and description.
+ query: String
+ ): OperationConnection!
+}
+
+type RootQuery {
+ allBugs(
+ # Returns the elements in the list that come after the specified cursor.
+ after: String
+
+ # Returns the elements in the list that come before the specified cursor.
+ before: String
+
+ # Returns the first _n_ elements from the list.
+ first: Int
+
+ # Returns the last _n_ elements from the list.
+ last: Int
+
+ # If provided, searches labels by name and description.
+ query: String
+ ): BugConnection!
+ bug(id: String!): Bug
+}