summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-30 12:04:12 -0600
committermo khan <mo@mokhan.ca>2025-07-30 12:04:12 -0600
commitd4f4f72b5ff586f2ff440f19f61d2fe48be89a37 (patch)
tree7b72d99a6257b636a9a844602f469975853e3b0e /app
parent2c4c6cb7fe868229ba3c3a5eddc80d5581574b19 (diff)
refactor: extract Boot() function to kickstart background job queue API
Diffstat (limited to 'app')
-rw-r--r--app/init.go9
-rw-r--r--app/jobs/init.go25
2 files changed, 29 insertions, 5 deletions
diff --git a/app/init.go b/app/init.go
index 398c8a9..8e5e0e5 100644
--- a/app/init.go
+++ b/app/init.go
@@ -19,6 +19,7 @@ import (
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/domain"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/jobs"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/authz"
+ "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/pls"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/web"
)
@@ -89,9 +90,7 @@ func init() {
logger := ioc.MustResolve[*zerolog.Logger](c)
ctx := logger.WithContext(context.Background())
- client := ioc.MustResolve[*authzed.Client](c)
-
- ioc.
- MustResolve[*event.TypedAggregator[*domain.Sparkle]](c).
- SubscribeTo("after.create", jobs.NewCreateSparkle(ctx, client).Run)
+ if err := jobs.Boot(ctx, c); err != nil {
+ pls.LogErrorNow(ctx, err)
+ }
}
diff --git a/app/jobs/init.go b/app/jobs/init.go
new file mode 100644
index 0000000..abc7dd1
--- /dev/null
+++ b/app/jobs/init.go
@@ -0,0 +1,25 @@
+package jobs
+
+import (
+ "context"
+
+ "github.com/authzed/authzed-go/v1"
+ "github.com/golobby/container/v3"
+ "github.com/xlgmokha/x/pkg/event"
+ "github.com/xlgmokha/x/pkg/ioc"
+ "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/domain"
+)
+
+func Boot(ctx context.Context, c container.Container) error {
+ client, err := ioc.Resolve[*authzed.Client](c)
+ if err != nil {
+ return err
+ }
+ aggregator, err := ioc.Resolve[*event.TypedAggregator[*domain.Sparkle]](c)
+ if err != nil {
+ return err
+ }
+
+ aggregator.SubscribeTo("after.create", NewCreateSparkle(ctx, client).Run)
+ return nil
+}