cache: better API to access excerpts

This commit is contained in:
Michael Muré 2019-02-26 22:25:52 +01:00
parent c235d89d36
commit bad05a4f3d
No known key found for this signature in database
GPG Key ID: A4457C029293126F
3 changed files with 35 additions and 22 deletions

32
cache/repo_cache.go vendored
View File

@ -387,6 +387,16 @@ 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.bugExcerpts[id]
if !ok {
return nil, bug.ErrBugNotExist
}
return e, nil
}
// ResolveBugPrefix retrieve a bug matching an id prefix. It fails if multiple
// bugs match.
func (c *RepoCache) ResolveBugPrefix(prefix string) (*BugCache, error) {
@ -489,12 +499,6 @@ func (c *RepoCache) AllBugsIds() []string {
return result
}
// AllBugExcerpt return all known bug excerpt.
// This maps is read-only.
func (c *RepoCache) AllBugExcerpt() map[string]*BugExcerpt {
return c.bugExcerpts
}
// ValidLabels list valid labels
//
// Note: in the future, a proper label policy could be implemented where valid
@ -708,6 +712,16 @@ func (c *RepoCache) ResolveIdentity(id string) (*IdentityCache, error) {
return cached, nil
}
// ResolveIdentityExcerpt retrieve a IdentityExcerpt matching the exact given id
func (c *RepoCache) ResolveIdentityExcerpt(id string) (*IdentityExcerpt, error) {
e, ok := c.identitiesExcerpts[id]
if !ok {
return nil, identity.ErrIdentityNotExist
}
return e, nil
}
// ResolveIdentityPrefix retrieve an Identity matching an id prefix.
// It fails if multiple identities match.
func (c *RepoCache) ResolveIdentityPrefix(prefix string) (*IdentityCache, error) {
@ -767,12 +781,6 @@ func (c *RepoCache) AllIdentityIds() []string {
return result
}
// AllIdentityExcerpt return all known identities excerpt.
// This maps is read-only.
func (c *RepoCache) AllIdentityExcerpt() map[string]*IdentityExcerpt {
return c.identitiesExcerpts
}
func (c *RepoCache) SetUserIdentity(i *IdentityCache) error {
err := identity.SetUserIdentity(c.repo, i.Identity)
if err != nil {

View File

@ -17,7 +17,12 @@ func runUserLs(cmd *cobra.Command, args []string) error {
defer backend.Close()
interrupt.RegisterCleaner(backend.Close)
for _, i := range backend.AllIdentityExcerpt() {
for _, id := range backend.AllIdentityIds() {
i, err := backend.ResolveIdentityExcerpt(id)
if err != nil {
return err
}
fmt.Printf("%s %s\n",
colors.Cyan(i.HumanId()),
i.DisplayName(),

View File

@ -17,15 +17,6 @@ case $state in
;;
level2)
case $words[2] in
status)
_arguments '2: :(close open)'
;;
title)
_arguments '2: :(edit)'
;;
user)
_arguments '2: :(adopt create ls)'
;;
bridge)
_arguments '2: :(configure pull rm)'
;;
@ -35,6 +26,15 @@ case $state in
label)
_arguments '2: :(add rm)'
;;
status)
_arguments '2: :(close open)'
;;
title)
_arguments '2: :(edit)'
;;
user)
_arguments '2: :(adopt create ls)'
;;
*)
_arguments '*: :_files'
;;