summaryrefslogtreecommitdiff
path: root/app/init.go
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-23 12:21:24 -0600
committermo khan <mo@mokhan.ca>2025-07-23 12:21:24 -0600
commit9674cfaedfdb8d583cfe75e1c1738a1c1d66c7f9 (patch)
tree4ecede06bdc4e3e689ff4e3f952db603038f7790 /app/init.go
parent944ef4ca499fe27a57d4cd3c21bccb99508526ca (diff)
refactor: inject permission service into sparkle controller
Diffstat (limited to 'app/init.go')
-rw-r--r--app/init.go25
1 files changed, 14 insertions, 11 deletions
diff --git a/app/init.go b/app/init.go
index 53f9e66..2986809 100644
--- a/app/init.go
+++ b/app/init.go
@@ -23,6 +23,16 @@ func init() {
ioc.RegisterSingleton[*zerolog.Logger](ioc.Default, func() *zerolog.Logger {
return log.New(os.Stdout, log.Fields{"app": "sparkled"})
})
+ ioc.RegisterSingleton[*authzed.Client](ioc.Default, func() *authzed.Client {
+ return authz.NewSpiceDBClient(
+ context.Background(),
+ env.Fetch("ZED_ENDPOINT", ":50051"),
+ env.Fetch("ZED_TOKEN", "secret"),
+ )
+ })
+ ioc.Register[authz.PermissionService](ioc.Default, func() authz.PermissionService {
+ return ioc.MustResolve[*authzed.Client](ioc.Default)
+ })
ioc.RegisterSingleton[domain.Repository[*domain.Sparkle]](ioc.Default, func() domain.Repository[*domain.Sparkle] {
return db.NewRepository[*domain.Sparkle]()
})
@@ -33,7 +43,10 @@ func init() {
return dashboard.New()
})
ioc.Register[*sparkles.Controller](ioc.Default, func() *sparkles.Controller {
- return sparkles.New(ioc.MustResolve[domain.Repository[*domain.Sparkle]](ioc.Default))
+ return sparkles.New(
+ ioc.MustResolve[domain.Repository[*domain.Sparkle]](ioc.Default),
+ ioc.MustResolve[authz.PermissionService](ioc.Default),
+ )
})
ioc.RegisterSingleton[*http.Client](ioc.Default, func() *http.Client {
return &http.Client{
@@ -42,16 +55,6 @@ func init() {
},
}
})
- ioc.RegisterSingleton[*authzed.Client](ioc.Default, func() *authzed.Client {
- return authz.NewSpiceDBClient(
- context.Background(),
- env.Fetch("ZED_ENDPOINT", ":50051"),
- env.Fetch("ZED_TOKEN", "secret"),
- )
- })
- ioc.Register[authz.CheckPermission](ioc.Default, func() authz.CheckPermission {
- return ioc.MustResolve[*authzed.Client](ioc.Default)
- })
http.DefaultClient = ioc.MustResolve[*http.Client](ioc.Default)