78 lines
2.6 KiB
Go
78 lines
2.6 KiB
Go
package metadata
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/rs/zerolog/log"
|
|
"google.golang.org/grpc"
|
|
|
|
pb "homelab.lan/music-agregator/gen/metadata/v1"
|
|
"homelab.lan/music-agregator/internal/config"
|
|
)
|
|
|
|
type MetadataServer struct {
|
|
client pb.MetadataServiceClient
|
|
conn *grpc.ClientConn
|
|
pb.UnimplementedMetadataServiceServer
|
|
}
|
|
|
|
func NewMetadataServer(cfg config.Config) (*MetadataServer, error) {
|
|
client, conn, err := NewMetadataClient(cfg.Metadata.Endpoint)
|
|
if err != nil {
|
|
log.Err(err).Msg("failed to initialize MetadataServer")
|
|
return nil, err
|
|
}
|
|
|
|
return &MetadataServer{client: client, conn: conn}, nil
|
|
}
|
|
|
|
func (s *MetadataServer) Close() {
|
|
if s.conn != nil {
|
|
s.conn.Close()
|
|
}
|
|
}
|
|
|
|
func (s *MetadataServer) Register(server *grpc.Server) {
|
|
pb.RegisterMetadataServiceServer(server, s)
|
|
}
|
|
|
|
func (s *MetadataServer) GetArtist(ctx context.Context, req *pb.GetArtistRequest) (*pb.GetArtistResponse, error) {
|
|
log.Debug().Msg("metadata GetArtist")
|
|
return s.client.GetArtist(ctx, req)
|
|
}
|
|
|
|
func (s *MetadataServer) SearchArtists(ctx context.Context, req *pb.SearchArtistsRequest) (*pb.SearchArtistsResponse, error) {
|
|
log.Debug().Str("query", req.GetQuery()).Int32("limit", req.GetLimit()).Msg("metadata SearchArtists")
|
|
return s.client.SearchArtists(ctx, req)
|
|
}
|
|
|
|
func (s *MetadataServer) GetAlbum(ctx context.Context, req *pb.GetAlbumRequest) (*pb.GetAlbumResponse, error) {
|
|
log.Debug().Msg("metadata GetAlbum")
|
|
return s.client.GetAlbum(ctx, req)
|
|
}
|
|
|
|
func (s *MetadataServer) GetArtistAlbums(ctx context.Context, req *pb.GetArtistAlbumsRequest) (*pb.GetArtistAlbumsResponse, error) {
|
|
log.Debug().Str("artist_id", req.GetArtistId()).Msg("metadata GetArtistAlbums")
|
|
return s.client.GetArtistAlbums(ctx, req)
|
|
}
|
|
|
|
func (s *MetadataServer) GetTrack(ctx context.Context, req *pb.GetTrackRequest) (*pb.GetTrackResponse, error) {
|
|
log.Debug().Msg("metadata GetTrack")
|
|
return s.client.GetTrack(ctx, req)
|
|
}
|
|
|
|
func (s *MetadataServer) GetAlbumTracks(ctx context.Context, req *pb.GetAlbumTracksRequest) (*pb.GetAlbumTracksResponse, error) {
|
|
log.Debug().Str("album_id", req.GetAlbumId()).Msg("metadata GetAlbumTracks")
|
|
return s.client.GetAlbumTracks(ctx, req)
|
|
}
|
|
|
|
func (s *MetadataServer) SearchAlbums(ctx context.Context, req *pb.SearchAlbumsRequest) (*pb.SearchAlbumsResponse, error) {
|
|
log.Debug().Str("query", req.GetQuery()).Str("artist", req.GetArtist()).Msg("metadata SearchAlbums")
|
|
return s.client.SearchAlbums(ctx, req)
|
|
}
|
|
|
|
func (s *MetadataServer) SyncArtist(ctx context.Context, req *pb.SyncArtistRequest) (*pb.SyncArtistResponse, error) {
|
|
log.Debug().Msg("metadata SyncArtist")
|
|
return s.client.SyncArtist(ctx, req)
|
|
}
|