package internal import ( "context" "github.com/jackc/pgx/v5" "github.com/riverqueue/river" "github.com/rs/zerolog/log" "google.golang.org/grpc" pb "homelab.lan/music-agregator/gen/music_agregator/v1" "homelab.lan/music-agregator/internal/config" "homelab.lan/music-agregator/internal/database" "homelab.lan/music-agregator/internal/torrent" ) type MusicAgregatorServer struct { service *MusicAgregatorService pb.UnimplementedMusicAgregatorServiceServer } func NewMusicAgregatorServer(cfg config.Config, riverClient *river.Client[pgx.Tx], torrentClient torrent.TorrentClient, db *database.DB) (*MusicAgregatorServer, error) { service, err := NewMusicAgregatorService(cfg, riverClient, torrentClient, db) if err != nil { log.Err(err).Msg("failed to create MusicAgregatorService") return nil, err } return &MusicAgregatorServer{ service: service, }, nil } func NewMusicAgregatorServerWithService(service *MusicAgregatorService) *MusicAgregatorServer { return &MusicAgregatorServer{service: service} } func (s *MusicAgregatorServer) GetArtists(ctx context.Context, req *pb.GetArtistsRequest) (*pb.GetArtistsResponse, error) { return s.service.GetArtists(ctx, req) } func (s *MusicAgregatorServer) GetAlbum(ctx context.Context, req *pb.GetAlbumRequest) (*pb.GetAlbumResponse, error) { return s.service.GetAlbum(ctx, req) } func (s *MusicAgregatorServer) MonitorAlbum(ctx context.Context, req *pb.MonitorAlbumRequest) (*pb.MonitorAlbumResponse, error) { return s.service.MonitorAlbum(ctx, req) } func (s *MusicAgregatorServer) Register(server *grpc.Server) { pb.RegisterMusicAgregatorServiceServer(server, s) }