aboutsummaryrefslogtreecommitdiffstats
path: root/graphql/timeline.graphql
blob: 75f7230537a5154646db6a3010233a0462ba69a0 (plain) (blame)
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
81
82
83
84
85
86
"""An item in the timeline of events"""
interface TimelineItem {
    """The hash of the source operation"""
    hash: Hash!
}

"""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 {
    """The hash of the source operation"""
    hash: Hash!
    author: Person!
    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 {
    """The hash of the source operation"""
    hash: Hash!
    author: Person!
    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 {
    """The hash of the source operation"""
    hash: Hash!
    author: Person!
    date: Time!
    added: [Label!]!
    removed: [Label!]!
}

"""SetStatusTimelineItem is a TimelineItem that represent a change in the status of a bug"""
type SetStatusTimelineItem implements TimelineItem {
    """The hash of the source operation"""
    hash: Hash!
    author: Person!
    date: Time!
    status: Status!
}

"""LabelChangeTimelineItem is a TimelineItem that represent a change in the title of a bug"""
type SetTitleTimelineItem implements TimelineItem {
    """The hash of the source operation"""
    hash: Hash!
    author: Person!
    date: Time!
    title: String!
    was: String!
}