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}