Reduced redundancy in model conversions and consistent naming

This commit is contained in:
Philipp Wolfer 2023-11-22 17:53:09 +01:00
parent e29d8e2a63
commit cac88f316b
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
10 changed files with 107 additions and 107 deletions

View file

@ -66,7 +66,7 @@ out:
}
for _, fwListen := range result.Results {
listen := fwListen.ToListen()
listen := fwListen.AsListen()
if listen.ListenedAt.Unix() > oldestTimestamp.Unix() {
p.Elapsed += 1
listens = append(listens, listen)
@ -118,7 +118,7 @@ out:
}
for _, favorite := range result.Results {
love := favorite.ToLove()
love := favorite.AsLove()
if love.Created.Unix() > oldestTimestamp.Unix() {
p.Elapsed += 1
loves = append(loves, love)
@ -142,24 +142,10 @@ out:
results <- models.LovesResult{Loves: loves}
}
func (l Listening) ToListen() models.Listen {
track := l.Track
func (l Listening) AsListen() models.Listen {
listen := models.Listen{
UserName: l.User.UserName,
Track: models.Track{
TrackName: track.Title,
ReleaseName: track.Album.Title,
ArtistNames: []string{track.Artist.Name},
TrackNumber: track.Position,
DiscNumber: track.DiscNumber,
RecordingMbid: models.MBID(track.RecordingMbid),
ReleaseMbid: models.MBID(track.Album.ReleaseMbid),
ArtistMbids: []models.MBID{models.MBID(track.Artist.ArtistMbid)},
Tags: track.Tags,
AdditionalInfo: map[string]any{
"media_player": FunkwhaleClientName,
},
},
Track: l.Track.AsTrack(),
}
listenedAt, err := time.Parse(time.RFC3339, l.CreationDate)
@ -167,33 +153,15 @@ func (l Listening) ToListen() models.Listen {
listen.ListenedAt = listenedAt
}
if len(track.Uploads) > 0 {
listen.Track.Duration = time.Duration(track.Uploads[0].Duration * int(time.Second))
}
return listen
}
func (f FavoriteTrack) ToLove() models.Love {
track := f.Track
recordingMbid := models.MBID(track.RecordingMbid)
func (f FavoriteTrack) AsLove() models.Love {
track := f.Track.AsTrack()
love := models.Love{
UserName: f.User.UserName,
RecordingMbid: recordingMbid,
Track: models.Track{
TrackName: track.Title,
ReleaseName: track.Album.Title,
ArtistNames: []string{track.Artist.Name},
TrackNumber: track.Position,
DiscNumber: track.DiscNumber,
RecordingMbid: recordingMbid,
ReleaseMbid: models.MBID(track.Album.ReleaseMbid),
ArtistMbids: []models.MBID{models.MBID(track.Artist.ArtistMbid)},
Tags: track.Tags,
AdditionalInfo: map[string]any{
"media_player": FunkwhaleClientName,
},
},
RecordingMbid: track.RecordingMbid,
Track: track,
}
created, err := time.Parse(time.RFC3339, f.CreationDate)
@ -201,9 +169,29 @@ func (f FavoriteTrack) ToLove() models.Love {
love.Created = created
}
if len(track.Uploads) > 0 {
love.Track.Duration = time.Duration(track.Uploads[0].Duration * int(time.Second))
}
return love
}
func (t Track) AsTrack() models.Track {
recordingMbid := models.MBID(t.RecordingMbid)
track := models.Track{
TrackName: t.Title,
ReleaseName: t.Album.Title,
ArtistNames: []string{t.Artist.Name},
TrackNumber: t.Position,
DiscNumber: t.DiscNumber,
RecordingMbid: recordingMbid,
ReleaseMbid: models.MBID(t.Album.ReleaseMbid),
ArtistMbids: []models.MBID{models.MBID(t.Artist.ArtistMbid)},
Tags: t.Tags,
AdditionalInfo: map[string]any{
"media_player": FunkwhaleClientName,
},
}
if len(t.Uploads) > 0 {
track.Duration = time.Duration(t.Uploads[0].Duration * int(time.Second))
}
return track
}

View file

@ -34,7 +34,7 @@ func TestFromConfig(t *testing.T) {
assert.IsType(t, &funkwhale.FunkwhaleApiBackend{}, backend)
}
func TestFunkwhaleListeningToListen(t *testing.T) {
func TestFunkwhaleListeningAsListen(t *testing.T) {
fwListen := funkwhale.Listening{
CreationDate: "2023-11-09T23:59:29.022005Z",
User: funkwhale.User{
@ -61,7 +61,7 @@ func TestFunkwhaleListeningToListen(t *testing.T) {
},
},
}
listen := fwListen.ToListen()
listen := fwListen.AsListen()
assert := assert.New(t)
assert.Equal(time.Unix(1699574369, 0).Unix(), listen.ListenedAt.Unix())
assert.Equal(fwListen.User.UserName, listen.UserName)
@ -79,7 +79,7 @@ func TestFunkwhaleListeningToListen(t *testing.T) {
assert.Equal(funkwhale.FunkwhaleClientName, listen.AdditionalInfo["media_player"])
}
func TestFunkwhaleFavoriteTrackToLove(t *testing.T) {
func TestFunkwhaleFavoriteTrackAsLove(t *testing.T) {
favorite := funkwhale.FavoriteTrack{
CreationDate: "2023-11-09T23:59:29.022005Z",
User: funkwhale.User{
@ -106,7 +106,7 @@ func TestFunkwhaleFavoriteTrackToLove(t *testing.T) {
},
},
}
love := favorite.ToLove()
love := favorite.AsLove()
assert := assert.New(t)
assert.Equal(time.Unix(1699574369, 0).Unix(), love.Created.Unix())
assert.Equal(favorite.User.UserName, love.UserName)