diff options
Diffstat (limited to 'cache/bug_excerpt.go')
-rw-r--r-- | cache/bug_excerpt.go | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/cache/bug_excerpt.go b/cache/bug_excerpt.go index 86424a0a..a50d8c66 100644 --- a/cache/bug_excerpt.go +++ b/cache/bug_excerpt.go @@ -23,11 +23,16 @@ type BugExcerpt struct { CreateUnixTime int64 EditUnixTime int64 - Title string Status bug.Status - Author identity.Interface - LenComments int Labels []bug.Label + Title string + LenComments int + + // If author is identity.Bare, LegacyAuthor is set + // If author is identity.Identity, AuthorId is set and data is deported + // in a IdentityExcerpt + LegacyAuthor LegacyAuthorExcerpt + AuthorId string CreateMetadata map[string]string } @@ -45,13 +50,25 @@ func NewBugExcerpt(b bug.Interface, snap *bug.Snapshot) *BugExcerpt { EditLamportTime: b.EditLamportTime(), CreateUnixTime: b.FirstOp().GetUnixTime(), EditUnixTime: snap.LastEditUnix(), - Title: snap.Title, Status: snap.Status, Labels: snap.Labels, + Title: snap.Title, LenComments: len(snap.Comments), CreateMetadata: b.FirstOp().AllMetadata(), } + switch snap.Author.(type) { + case *identity.Identity: + e.AuthorId = snap.Author.Id() + case *identity.Bare: + e.LegacyAuthor = LegacyAuthorExcerpt{ + Login: snap.Author.Login(), + Name: snap.Author.Name(), + } + default: + panic("unhandled identity type") + } + return e } |