Add remaining model types and client methods
Models added: - Disclaimer, ForeignAgent (credits.go) - ArtistConcerts (concert.go) - Dashboard, StationResult, Station, AdParams, GenerativeStream, GenerativeStreamData, GenerativeStreamInfo (radio.go) - FileInfo, FileDownloadInfo, TrackFullInfo, SimilarTracks, TrackTrailer (track.go) - Removed duplicate AdParams from feed.go Client methods added: - artists.go: GetArtistBriefInfo, GetArtistSimilar, GetArtistLinks, GetArtistAlsoAlbums, GetArtistDiscographyAlbums, GetArtistSafeDirectAlbums, GetArtistTrackIds, GetArtistAbout, GetArtistDonation, GetArtistInfo, GetArtistSkeleton, GetArtistTrailer - albums.go: GetAlbumSimilarEntities, GetAlbumTrailer - clips.go: GetClipsDisclaimer - concerts.go: GetArtistConcerts, GetConcertSkeleton - radio.go: GetRotorStationsDashboard, GetRotorStationsList, GetRotorStationInfo, GetRotorStationStream, GetRotorStationSettings - supplements.go: GetTracksCredits, GetClipsCredits - queue.go: GetQueuesList - tracks.go: GetTracksFileInfo, GetTracksSimilar, GetTrackTrailer, GetTrackFullInfo
This commit is contained in:
1 parent
49920d8908
commit
73775a8526
9 files changed
+639
-7
No files matched your search
@@ -274,3 +274,49 @@ type ConcertSkeletonBlock struct {
|
||||
Title string `json:"title"`
|
||||
Data json.RawMessage `json:"data"`
|
||||
}
|
||||
|
||||
// ArtistConcerts represents concerts by an artist.
|
||||
type ArtistConcerts struct {
|
||||
BaseModel
|
||||
ArtistTitle string `json:"artist_title"`
|
||||
Concerts []Concert `json:"concerts"`
|
||||
}
|
||||
|
||||
// DeJSON deserializes ArtistConcerts from JSON data.
|
||||
func (ac *ArtistConcerts) DeJSON(data []byte, c ClientInterface) (Model, error) {
|
||||
var raw map[string]json.RawMessage
|
||||
if err := json.Unmarshal(data, &raw); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
acObj := &ArtistConcerts{BaseModel: *NewBaseModel(c)}
|
||||
|
||||
if v, ok := raw["artist_title"]; ok {
|
||||
json.Unmarshal(v, &acObj.ArtistTitle)
|
||||
}
|
||||
if v, ok := raw["concerts"]; ok {
|
||||
var concerts []Concert
|
||||
json.Unmarshal(v, &concerts)
|
||||
acObj.Concerts = concerts
|
||||
}
|
||||
|
||||
return acObj, nil
|
||||
}
|
||||
|
||||
// DeList deserializes a list of ArtistConcerts from JSON data.
|
||||
func (ac *ArtistConcerts) DeList(data []byte, c ClientInterface) ([]Model, error) {
|
||||
var rawList []json.RawMessage
|
||||
if err := json.Unmarshal(data, &rawList); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := make([]Model, 0, len(rawList))
|
||||
for _, item := range rawList {
|
||||
ac := &ArtistConcerts{BaseModel: *NewBaseModel(c)}
|
||||
if err := json.Unmarshal(item, ac); err != nil {
|
||||
continue
|
||||
}
|
||||
result = append(result, ac)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
Reference in new issue
Block a user