From 8fa0b258ac89781dae269790a4bde09cbcd2f324 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Sun, 29 Jul 2018 18:58:42 +0200 Subject: cleaning --- graphql/schema.graphql | 181 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 graphql/schema.graphql (limited to 'graphql/schema.graphql') diff --git a/graphql/schema.graphql b/graphql/schema.graphql new file mode 100644 index 00000000..47716488 --- /dev/null +++ b/graphql/schema.graphql @@ -0,0 +1,181 @@ +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 +} + +input ConnectionInput { + # 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 +} + +# 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!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type CommentEdge { + cursor: String! + node: Comment! +} + +# 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!]! + 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 Bug. +type BugConnection { + # A list of edges. + edges: [BugEdge]! + + # 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 { + id: String! + humanId: String! + title: String! + status: Status! + + # A list of labels associated with the repository. + labels: [Label!]! + + comments(input: ConnectionInput!): CommentConnection! + + operations(input: ConnectionInput!): OperationConnection! +} + +type Repository { + allBugs(input: ConnectionInput!): BugConnection! + bug(prefix: String!): Bug +} + +type Query { + defaultRepository: Repository + repository(id: String!): Repository +} -- cgit