Files
mal/internal/playback/module.go
2026-05-26 22:40:09 +02:00

42 lines
1.2 KiB
Go

package playback
import (
"mal/integrations/jikan"
"mal/integrations/playback/allanime"
"mal/internal/config"
"mal/internal/domain"
"mal/internal/playback/handler"
"mal/internal/playback/repository"
"mal/internal/playback/service"
"mal/internal/server"
"go.uber.org/fx"
)
func provideProxyTokenKey(cfg config.Config) service.ProxyTokenKey {
return service.ProxyTokenKey(cfg.PlaybackProxySecret)
}
var Module = fx.Options(
fx.Provide(
repository.NewPlaybackRepository,
fx.Annotate(
func(repo domain.PlaybackRepository, providers []domain.Provider, jikan *jikan.Client, episodeSvc domain.EpisodeService, auditSvc domain.AuditService, proxyTokenKey service.ProxyTokenKey) domain.PlaybackService {
return service.NewPlaybackService(repo, providers, jikan, episodeSvc, auditSvc, proxyTokenKey)
},
),
func(svc domain.PlaybackService, animeSvc domain.AnimeService) *handler.PlaybackHandler {
return handler.NewPlaybackHandler(svc, animeSvc)
},
),
fx.Provide(
server.AsRouteRegister(func(h *handler.PlaybackHandler) server.RouteRegister {
return h
}),
),
fx.Provide(func(p *allanime.AllAnimeProvider) []domain.Provider {
return []domain.Provider{p}
}),
fx.Provide(provideProxyTokenKey),
)