resolvers.go

 1package cache
 2
 3import (
 4	"github.com/MichaelMure/git-bug/entity"
 5)
 6
 7func makeResolvers(cache *RepoCache) entity.Resolvers {
 8	return entity.Resolvers{
 9		&IdentityCache{}: newIdentityCacheResolver(cache),
10		&BugCache{}:      newBugCacheResolver(cache),
11	}
12}
13
14var _ entity.Resolver = &identityCacheResolver{}
15
16// identityCacheResolver is an identity Resolver that retrieve identities from
17// the cache
18type identityCacheResolver struct {
19	cache *RepoCache
20}
21
22func newIdentityCacheResolver(cache *RepoCache) *identityCacheResolver {
23	return &identityCacheResolver{cache: cache}
24}
25
26func (i *identityCacheResolver) Resolve(id entity.Id) (entity.Interface, error) {
27	return i.cache.ResolveIdentity(id)
28}
29
30var _ entity.Resolver = &bugCacheResolver{}
31
32type bugCacheResolver struct {
33	cache *RepoCache
34}
35
36func newBugCacheResolver(cache *RepoCache) *bugCacheResolver {
37	return &bugCacheResolver{cache: cache}
38}
39
40func (b *bugCacheResolver) Resolve(id entity.Id) (entity.Interface, error) {
41	return b.cache.ResolveBug(id)
42}