@@ -17,11 +17,11 @@ type Service interface { Count(ctx context.Context, repo string, opt ListOptions) (uint64, error) // Get a change. Get(ctx context.Context, repo string, id uint64) (Change, error) // ListTimeline lists timeline items (changes.Comment, changes.TimelineItem) for specified change id. // ListTimeline lists timeline items (changes.Comment, changes.Review, changes.TimelineItem) for specified change id. ListTimeline(ctx context.Context, repo string, id uint64, opt *ListTimelineOptions) ([]interface{}, error) // ListCommits lists change commits. ListCommits(ctx context.Context, repo string, id uint64) ([]Commit, error) // Get a change diff. GetDiff(ctx context.Context, repo string, id uint64, opt *GetDiffOptions) ([]byte, error)
@@ -31,21 +31,39 @@ var s = struct { ID: 1, State: changes.OpenState, Title: "Initial implementation of woff2.", Labels: nil, Author: shurcool, CreatedAt: time.Now().Add(-5 * time.Minute), CreatedAt: time.Now().UTC().Add(-5 * time.Minute), Replies: 0, Commits: 1, }, Timeline: nil, Timeline: []interface{}{ changes.Review{ User: users.User{Login: "Eric Grosse", AvatarURL: "https://lh6.googleusercontent.com/-_sdEtv2PRxk/AAAAAAAAAAI/AAAAAAAAAAA/aE1Q66Cuvb4/s100-p/photo.jpg"}, CreatedAt: time.Now().UTC().Add(-1 * time.Minute), State: changes.Approved, Comments: []changes.InlineComment{ { File: "LICENSE", Line: 26, Body: "Ok by me, but how was this chosen?", }, { File: "parse.go", Line: 31, Body: "As someone who reads the server logs, my gut feeling is that 1 QPS of Lookup logs will give me sufficient data to tell me the system is working, without creating a big mess.", }, }, }, }, Commits: []changes.Commit{{ SHA: "4a911c4a1eabcc20a66ccc5c983dede401da2796", Message: "Initial implementation of woff2.\n\nMaybe some additional details here.", Author: shurcool, AuthorTime: time.Now().Add(-10 * time.Minute), AuthorTime: time.Now().UTC().Add(-10 * time.Minute), }}, Diff: []byte(diff), }, }, }
@@ -7,10 +7,11 @@ import ( "github.com/shurcooL/reactions" "github.com/shurcooL/users" ) // Comment represents a comment left on a change. // TODO: Consider removing in favor of Review with commented state and no inline comments. type Comment struct { ID uint64 User users.User CreatedAt time.Time Edited *Edited // Edited is nil if the comment hasn't been edited. @@ -23,10 +24,11 @@ type Comment struct { type Edited struct { By users.User At time.Time } // Review represents a review left on a change. type Review struct { ID uint64 User users.User CreatedAt time.Time Edited *Edited // Edited is nil if the review hasn't been edited. @@ -35,10 +37,11 @@ type Review struct { Reactions []reactions.Reaction Editable bool // Editable represents whether the current user (if any) can perform edit operations on this review. Comments []InlineComment } // InlineComment represents an inline comment that was left as part of a review. type InlineComment struct { File string Line int Body string }