From ff2fd14e3f10a7206d4ec86f07e524cfa290e0fc Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Fri, 27 Jul 2018 19:48:45 +0200 Subject: wip gqlgen --- graphql2/schema.graphql | 233 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 graphql2/schema.graphql (limited to 'graphql2/schema.graphql') 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 +} -- cgit