Files
music-agregator/internal/torrent/server.go
T
2026-05-07 10:27:20 +02:00

47 lines
1.1 KiB
Go

package torrent
import (
"context"
"github.com/rs/zerolog/log"
"google.golang.org/grpc"
pb "homelab.lan/music-agregator/gen/music_agregator/torrent/v1"
"homelab.lan/music-agregator/internal/config"
)
type TorrentServer struct {
service *TorrentService
pb.UnimplementedTorrentServiceServer
}
func NewTorrentServer(cfg config.Config) (*TorrentServer, error) {
service, err := NewTorrentService(cfg)
if err != nil {
log.Err(err).Msg("failed to initialize TorrentService")
return nil, err
}
return &TorrentServer{service: service}, nil
}
func (server *TorrentServer) List(ctx context.Context, req *pb.ListRequest) (*pb.ListResponse, error) {
return server.service.List(req)
}
func (server *TorrentServer) Add(ctx context.Context, req *pb.AddRequest) (*pb.AddResponse, error) {
log.Debug().Str("download_url", req.GetDownloadUrl()).Str("filename", req.GetFilename()).Msg("add torrent requested")
resp, err := server.service.Add(req)
if err != nil {
log.Error().Err(err).Msg("add torrent failed")
return nil, err
}
return resp, nil
}
func (s *TorrentServer) Register(server *grpc.Server) {
pb.RegisterTorrentServiceServer(server, s)
}