1package identity
2
3import (
4 "github.com/MichaelMure/git-bug/entity"
5 "github.com/MichaelMure/git-bug/repository"
6)
7
8var _ entity.Resolver = &SimpleResolver{}
9
10// SimpleResolver is a Resolver loading Identities directly from a Repo
11type SimpleResolver struct {
12 repo repository.Repo
13}
14
15func NewSimpleResolver(repo repository.Repo) *SimpleResolver {
16 return &SimpleResolver{repo: repo}
17}
18
19func (r *SimpleResolver) Resolve(id entity.Id) (entity.Interface, error) {
20 return ReadLocal(r.repo, id)
21}
22
23var _ entity.Resolver = &StubResolver{}
24
25// StubResolver is a Resolver that doesn't load anything, only returning IdentityStub instances
26type StubResolver struct{}
27
28func NewStubResolver() *StubResolver {
29 return &StubResolver{}
30}
31
32func (s *StubResolver) Resolve(id entity.Id) (entity.Interface, error) {
33 return &IdentityStub{id: id}, nil
34}