Files
mal/internal/episodes/module.go

37 lines
1000 B
Go

package episodes
import (
"os"
"strings"
"mal/integrations/jikan"
"mal/integrations/playback/allanime"
"mal/internal/db"
"mal/internal/domain"
episodeService "mal/internal/episodes/service"
"mal/internal/observability"
"go.uber.org/fx"
)
func episodeAvailabilityEnabled() bool {
value := strings.ToLower(strings.TrimSpace(os.Getenv("EPISODE_AVAILABILITY_MODE")))
return value != "legacy" && value != "jikan"
}
var Module = fx.Options(
fx.Provide(
episodeAvailabilityEnabled,
fx.Annotate(
func(queries *db.Queries, jikanClient *jikan.Client, providers []domain.EpisodeAvailabilityProvider, enabled bool, metrics *observability.Metrics) domain.EpisodeService {
return episodeService.NewEpisodeService(queries, jikanClient, providers, enabled, metrics)
},
fx.ParamTags(``, ``, ``, ``, ``),
),
),
fx.Provide(func(p *allanime.AllAnimeProvider) []domain.EpisodeAvailabilityProvider {
return []domain.EpisodeAvailabilityProvider{p}
}),
fx.Invoke(RegisterWorker),
)