diff options
| author | mo khan <mo@mokhan.ca> | 2025-07-30 12:04:12 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-07-30 12:04:12 -0600 |
| commit | d4f4f72b5ff586f2ff440f19f61d2fe48be89a37 (patch) | |
| tree | 7b72d99a6257b636a9a844602f469975853e3b0e /app | |
| parent | 2c4c6cb7fe868229ba3c3a5eddc80d5581574b19 (diff) | |
refactor: extract Boot() function to kickstart background job queue API
Diffstat (limited to 'app')
| -rw-r--r-- | app/init.go | 9 | ||||
| -rw-r--r-- | app/jobs/init.go | 25 |
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 +} |
