58 lines
894 B
Go
58 lines
894 B
Go
package deezer
|
|
|
|
import "fmt"
|
|
|
|
type Kind string
|
|
|
|
const (
|
|
KindAlbum Kind = "album"
|
|
KindPlaylist Kind = "playlist"
|
|
KindArtist Kind = "artist"
|
|
KindTrack Kind = "track"
|
|
)
|
|
|
|
func (k Kind) pageMethod() string {
|
|
switch k {
|
|
case KindAlbum:
|
|
return "Album"
|
|
case KindPlaylist:
|
|
return "Playlist"
|
|
case KindArtist:
|
|
return "Artist"
|
|
case KindTrack:
|
|
return "Track"
|
|
}
|
|
|
|
return ""
|
|
}
|
|
|
|
func (k Kind) idKey() string {
|
|
switch k {
|
|
case KindAlbum:
|
|
return "alb_id"
|
|
case KindPlaylist:
|
|
return "playlist_id"
|
|
case KindArtist:
|
|
return "art_id"
|
|
case KindTrack:
|
|
return "sng_id"
|
|
}
|
|
|
|
return ""
|
|
}
|
|
|
|
func (k Kind) newResource() (Resource, error) {
|
|
switch k {
|
|
case KindAlbum:
|
|
return &Album{}, nil
|
|
case KindPlaylist:
|
|
return &Playlist{}, nil
|
|
case KindArtist:
|
|
return &Artist{}, nil
|
|
case KindTrack:
|
|
return &Single{}, nil
|
|
}
|
|
|
|
return nil, fmt.Errorf("unsupported resource type: %s", k)
|
|
}
|