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
@@ -170,3 +170,85 @@ func (ltp *LicenceTextPart) DeList(data []byte, client ClientInterface) ([]Model
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// Disclaimer represents a disclaimer.
|
||||
type Disclaimer struct {
|
||||
BaseModel
|
||||
ForeignAgent *ForeignAgent `json:"foreign_agent"`
|
||||
}
|
||||
|
||||
// DeJSON deserializes Disclaimer from JSON data.
|
||||
func (d *Disclaimer) DeJSON(data []byte, c ClientInterface) (Model, error) {
|
||||
var raw map[string]json.RawMessage
|
||||
if err := json.Unmarshal(data, &raw); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
disclaimer := &Disclaimer{BaseModel: *NewBaseModel(c)}
|
||||
|
||||
if v, ok := raw["foreign_agent"]; ok {
|
||||
var fa ForeignAgent
|
||||
json.Unmarshal(v, &fa)
|
||||
disclaimer.ForeignAgent = &fa
|
||||
}
|
||||
|
||||
return disclaimer, nil
|
||||
}
|
||||
|
||||
// DeList deserializes a list of Disclaimers from JSON data.
|
||||
func (d *Disclaimer) 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 {
|
||||
disclaimer := &Disclaimer{BaseModel: *NewBaseModel(c)}
|
||||
if err := json.Unmarshal(item, disclaimer); err != nil {
|
||||
continue
|
||||
}
|
||||
result = append(result, disclaimer)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// ForeignAgent represents a foreign agent.
|
||||
type ForeignAgent struct {
|
||||
BaseModel
|
||||
Text string `json:"text"`
|
||||
}
|
||||
|
||||
// DeJSON deserializes ForeignAgent from JSON data.
|
||||
func (fa *ForeignAgent) DeJSON(data []byte, c ClientInterface) (Model, error) {
|
||||
var raw map[string]json.RawMessage
|
||||
if err := json.Unmarshal(data, &raw); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
agent := &ForeignAgent{BaseModel: *NewBaseModel(c)}
|
||||
|
||||
if v, ok := raw["text"]; ok {
|
||||
json.Unmarshal(v, &agent.Text)
|
||||
}
|
||||
|
||||
return agent, nil
|
||||
}
|
||||
|
||||
// DeList deserializes a list of ForeignAgent from JSON data.
|
||||
func (fa *ForeignAgent) 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 {
|
||||
agent := &ForeignAgent{BaseModel: *NewBaseModel(c)}
|
||||
if err := json.Unmarshal(item, agent); err != nil {
|
||||
continue
|
||||
}
|
||||
result = append(result, agent)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
Reference in new issue
Block a user