aboutsummaryrefslogtreecommitdiffstats
path: root/entity/resolver.go
diff options
context:
space:
mode:
Diffstat (limited to 'entity/resolver.go')
-rw-r--r--entity/resolver.go12
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")
+ })
+}