refactor: typed proxy key

This commit is contained in:
2026-05-26 22:40:09 +02:00
parent b8521d2219
commit 65a7b0f50d
2 changed files with 7 additions and 5 deletions

View File

@@ -13,15 +13,15 @@ import (
"go.uber.org/fx" "go.uber.org/fx"
) )
func provideProxyTokenKey(cfg config.Config) string { func provideProxyTokenKey(cfg config.Config) service.ProxyTokenKey {
return cfg.PlaybackProxySecret return service.ProxyTokenKey(cfg.PlaybackProxySecret)
} }
var Module = fx.Options( var Module = fx.Options(
fx.Provide( fx.Provide(
repository.NewPlaybackRepository, repository.NewPlaybackRepository,
fx.Annotate( fx.Annotate(
func(repo domain.PlaybackRepository, providers []domain.Provider, jikan *jikan.Client, episodeSvc domain.EpisodeService, auditSvc domain.AuditService, proxyTokenKey string) domain.PlaybackService { 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) return service.NewPlaybackService(repo, providers, jikan, episodeSvc, auditSvc, proxyTokenKey)
}, },
), ),

View File

@@ -35,6 +35,8 @@ type playbackService struct {
auditSvc domain.AuditService auditSvc domain.AuditService
} }
type ProxyTokenKey string
type proxyTokenPayload struct { type proxyTokenPayload struct {
TargetURL string `json:"u"` TargetURL string `json:"u"`
Referer string `json:"r,omitempty"` Referer string `json:"r,omitempty"`
@@ -42,7 +44,7 @@ type proxyTokenPayload struct {
ExpiresAt int64 `json:"exp"` ExpiresAt int64 `json:"exp"`
} }
func NewPlaybackService(repo domain.PlaybackRepository, providers []domain.Provider, jikan *jikan.Client, episodes domain.EpisodeService, auditSvc domain.AuditService, proxyTokenKey string) domain.PlaybackService { func NewPlaybackService(repo domain.PlaybackRepository, providers []domain.Provider, jikan *jikan.Client, episodes domain.EpisodeService, auditSvc domain.AuditService, proxyTokenKey ProxyTokenKey) domain.PlaybackService {
return &playbackService{ return &playbackService{
repo: repo, repo: repo,
providers: providers, providers: providers,
@@ -50,7 +52,7 @@ func NewPlaybackService(repo domain.PlaybackRepository, providers []domain.Provi
episodes: episodes, episodes: episodes,
auditSvc: auditSvc, auditSvc: auditSvc,
httpClient: &http.Client{Timeout: 10 * time.Second}, httpClient: &http.Client{Timeout: 10 * time.Second},
proxyTokenKey: proxyTokenKey, proxyTokenKey: string(proxyTokenKey),
} }
} }