File size: 933 Bytes
1f10f31 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package common
import (
"fmt"
"log/slog"
"github.com/google/wire"
"github.com/openmeterio/openmeter/app/config"
"github.com/openmeterio/openmeter/openmeter/progressmanager"
"github.com/openmeterio/openmeter/openmeter/progressmanager/adapter"
)
var ProgressManager = wire.NewSet(
NewProgressManager,
)
// NewProgressManager creates a new progress manager service.
func NewProgressManager(logger *slog.Logger, conf config.ProgressManagerConfiguration) (progressmanager.Service, error) {
if !conf.Enabled {
return adapter.NewNoop(), nil
}
redisClient, err := conf.Redis.NewClient()
if err != nil {
return nil, fmt.Errorf("progress manager redis: %w", err)
}
pm, err := adapter.New(adapter.Config{
Expiration: conf.Expiration,
KeyPrefix: conf.KeyPrefix,
Logger: logger,
Redis: redisClient,
})
if err != nil {
return nil, fmt.Errorf("progress manager adapter: %w", err)
}
return pm, nil
}
|