git-bug/api/graphql/schema/timeline.graphql
Michael Muré 2ab6381a94
Reorganize the webUI and API code
Included in the changes:
- create a new /api root package to hold all API code, migrate /graphql in there
- git API handlers all use the cache instead of the repo directly
- git API handlers are now tested
- git API handlers now require a "repo" mux parameter
- lots of untangling of API/handlers/middleware
- less code in commands/webui.go
2020-06-27 23:03:05 +02:00

87 lines
2.3 KiB
GraphQL

"""An item in the timeline of events"""
interface TimelineItem {
"""The identifier of the source operation"""
id: String!
}
"""CommentHistoryStep hold one version of a message in the history"""
type CommentHistoryStep {
message: String!
date: Time!
}
# Connection
"""The connection type for TimelineItem"""
type TimelineItemConnection {
edges: [TimelineItemEdge!]!
nodes: [TimelineItem!]!
pageInfo: PageInfo!
totalCount: Int!
}
"""Represent a TimelineItem"""
type TimelineItemEdge {
cursor: String!
node: TimelineItem!
}
# Items
"""CreateTimelineItem is a TimelineItem that represent the creation of a bug and its message edition history"""
type CreateTimelineItem implements TimelineItem & Authored {
"""The identifier of the source operation"""
id: String!
author: Identity!
message: String!
messageIsEmpty: Boolean!
files: [Hash!]!
createdAt: Time!
lastEdit: Time!
edited: Boolean!
history: [CommentHistoryStep!]!
}
"""AddCommentTimelineItem is a TimelineItem that represent a Comment and its edition history"""
type AddCommentTimelineItem implements TimelineItem & Authored {
"""The identifier of the source operation"""
id: String!
author: Identity!
message: String!
messageIsEmpty: Boolean!
files: [Hash!]!
createdAt: Time!
lastEdit: Time!
edited: Boolean!
history: [CommentHistoryStep!]!
}
"""LabelChangeTimelineItem is a TimelineItem that represent a change in the labels of a bug"""
type LabelChangeTimelineItem implements TimelineItem & Authored {
"""The identifier of the source operation"""
id: String!
author: Identity!
date: Time!
added: [Label!]!
removed: [Label!]!
}
"""SetStatusTimelineItem is a TimelineItem that represent a change in the status of a bug"""
type SetStatusTimelineItem implements TimelineItem & Authored {
"""The identifier of the source operation"""
id: String!
author: Identity!
date: Time!
status: Status!
}
"""LabelChangeTimelineItem is a TimelineItem that represent a change in the title of a bug"""
type SetTitleTimelineItem implements TimelineItem & Authored {
"""The identifier of the source operation"""
id: String!
author: Identity!
date: Time!
title: String!
was: String!
}