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}