diff options
Diffstat (limited to 'entity/resolver.go')
-rw-r--r-- | entity/resolver.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/entity/resolver.go b/entity/resolver.go index d4fe5d3e..b2f831d7 100644 --- a/entity/resolver.go +++ b/entity/resolver.go @@ -72,3 +72,15 @@ type ResolverFunc func(id Id) (Interface, error) func (fn ResolverFunc) Resolve(id Id) (Interface, error) { return fn(id) } + +// MakeResolver create a resolver able to return the given entities. +func MakeResolver(entities ...Interface) Resolver { + return ResolverFunc(func(id Id) (Interface, error) { + for _, entity := range entities { + if entity.Id() == id { + return entity, nil + } + } + return nil, fmt.Errorf("entity not found") + }) +} |