aboutsummaryrefslogtreecommitdiffstats
path: root/cache
diff options
context:
space:
mode:
authorSladyn <gunnerforlife00@gmail.com>2019-03-02 23:58:15 +0530
committerSladyn <gunnerforlife00@gmail.com>2019-03-02 23:58:15 +0530
commitf1d5ca4ff4e8f20f21e2cdc65fe854d6f9c16fee (patch)
tree80384da7f761f836edc3668d391376109f388d06 /cache
parent0c42a7c33ef02cdb72b110b65e36e0e426c19359 (diff)
downloadgit-bug-f1d5ca4ff4e8f20f21e2cdc65fe854d6f9c16fee.tar.gz
Rebased and updated.
Diffstat (limited to 'cache')
-rw-r--r--cache/bug_excerpt.go25
-rw-r--r--cache/filter.go4
-rw-r--r--cache/repo_cache.go9
3 files changed, 23 insertions, 15 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
}
diff --git a/cache/filter.go b/cache/filter.go
index dc134260..a5aca8fb 100644
--- a/cache/filter.go
+++ b/cache/filter.go
@@ -57,7 +57,7 @@ func LabelFilter(label string) Filter {
// TitleFilter return a Filter that match a title
func TitleFilter(title string) Filter {
- return func(excerpt *BugExcerpt) bool {
+ return func(repo *RepoCache, excerpt *BugExcerpt) bool {
return strings.Contains(excerpt.Title, title)
}
}
@@ -96,7 +96,7 @@ func (f *Filters) Match(repoCache *RepoCache, excerpt *BugExcerpt) bool {
return false
}
- if match := f.andMatch(f.Title, excerpt); !match {
+ if match := f.andMatch(f.Title, repoCache, excerpt); !match {
return false
}
diff --git a/cache/repo_cache.go b/cache/repo_cache.go
index fd5d0865..2b0fa360 100644
--- a/cache/repo_cache.go
+++ b/cache/repo_cache.go
@@ -386,15 +386,6 @@ func (c *RepoCache) ResolveBug(id string) (*BugCache, error) {
return cached, nil
}
-// ResolveBugExcerpt retrieve a BugExcerpt matching the exact given id
-func (c *RepoCache) ResolveBugExcerpt(id string) (*BugExcerpt, error) {
- e, ok := c.excerpts[id]
- if !ok {
- return nil, bug.ErrBugNotExist
- }
-
- return e, nil
-}
// ResolveBugExcerpt retrieve a BugExcerpt matching the exact given id
func (c *RepoCache) ResolveBugExcerpt(id string) (*BugExcerpt, error) {