56 lines
1.8 KiB
Go
56 lines
1.8 KiB
Go
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, pathMapper *torrent.PathMapper, db *database.DB) (*MusicAgregatorServer, error) {
|
|
service, err := NewMusicAgregatorService(cfg, riverClient, torrentClient, pathMapper, 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) AnalyzeAlbumRelease(ctx context.Context, req *pb.AnalyzeAlbumReleaseRequest) (*pb.AnalyzeAlbumReleaseResponse, error) {
|
|
return s.service.AnalyzeAlbumRelease(ctx, req)
|
|
}
|
|
|
|
func (s *MusicAgregatorServer) Register(server *grpc.Server) {
|
|
pb.RegisterMusicAgregatorServiceServer(server, s)
|
|
}
|