Expand GetArtists with album details, download info, and generic MonitorState enum
This commit is contained in:
@@ -42,6 +42,16 @@ func (s *MetadataService) GetAlbum(ctx context.Context, albumID string) (*metada
|
||||
return album, nil
|
||||
}
|
||||
|
||||
func (s *MetadataService) GetArtistAlbums(ctx context.Context, artistExternalID string) ([]*metadataPb.Album, error) {
|
||||
resp, err := s.client.GetArtistAlbums(ctx, &metadataPb.GetArtistAlbumsRequest{
|
||||
ArtistId: artistExternalID,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("fetching artist albums: %w", err)
|
||||
}
|
||||
return resp.GetAlbums(), nil
|
||||
}
|
||||
|
||||
func (s *MetadataService) GetArtistByExternalID(ctx context.Context, externalID string) (*database.Artist, error) {
|
||||
return s.artists.GetByExternalID(ctx, externalID)
|
||||
}
|
||||
@@ -50,6 +60,10 @@ func (s *MetadataService) GetAlbumByExternalID(ctx context.Context, externalID s
|
||||
return s.albums.GetByExternalID(ctx, externalID)
|
||||
}
|
||||
|
||||
func (s *MetadataService) GetAlbumsByArtistID(ctx context.Context, artistID string) ([]*database.Album, error) {
|
||||
return s.albums.GetByArtistID(ctx, artistID)
|
||||
}
|
||||
|
||||
func (s *MetadataService) persistArtist(ctx context.Context, album *metadataPb.Album) {
|
||||
if len(album.GetArtists()) == 0 {
|
||||
return
|
||||
@@ -68,7 +82,7 @@ func (s *MetadataService) persistArtist(ctx context.Context, album *metadataPb.A
|
||||
Country: artist.GetCountry(),
|
||||
Genres: genres,
|
||||
ImageURL: artist.GetImageUrl(),
|
||||
MonitorState: database.ArtistMonitored,
|
||||
MonitorState: database.Monitored,
|
||||
})
|
||||
if err != nil {
|
||||
log.Warn().Err(err).Str("name", artist.GetName()).Msg("failed to persist artist")
|
||||
@@ -100,16 +114,16 @@ func (s *MetadataService) persistAlbum(ctx context.Context, album *metadataPb.Al
|
||||
}
|
||||
|
||||
err := s.albums.Create(ctx, &database.Album{
|
||||
ExternalID: album.GetId(),
|
||||
ArtistID: artistID,
|
||||
Title: album.GetTitle(),
|
||||
AlbumType: album.GetAlbumType(),
|
||||
TotalTracks: int(album.GetTotalTracks()),
|
||||
TotalDiscs: int(album.GetTotalDiscs()),
|
||||
Label: labelName,
|
||||
Genres: genres,
|
||||
CoverURL: album.GetCoverUrl(),
|
||||
IsMonitored: true,
|
||||
ExternalID: album.GetId(),
|
||||
ArtistID: artistID,
|
||||
Title: album.GetTitle(),
|
||||
AlbumType: album.GetAlbumType(),
|
||||
TotalTracks: int(album.GetTotalTracks()),
|
||||
TotalDiscs: int(album.GetTotalDiscs()),
|
||||
Label: labelName,
|
||||
Genres: genres,
|
||||
CoverURL: album.GetCoverUrl(),
|
||||
MonitorState: database.Monitored,
|
||||
})
|
||||
if err != nil {
|
||||
log.Warn().Err(err).Str("title", album.GetTitle()).Msg("failed to persist album")
|
||||
|
||||
Reference in New Issue
Block a user