Fix tests and lint errors, plus a bit of refactor

This commit is contained in:
Deluan
2023-01-22 12:25:35 -05:00
parent 72a12e344e
commit 94cc2b2ac5
14 changed files with 114 additions and 98 deletions
+3 -13
View File
@@ -4,7 +4,6 @@ import (
"errors"
"net/http"
"github.com/navidrome/navidrome/core/auth"
"github.com/navidrome/navidrome/log"
"github.com/navidrome/navidrome/model"
"github.com/navidrome/navidrome/server"
@@ -39,26 +38,17 @@ func (p *Router) handleShares(w http.ResponseWriter, r *http.Request) {
return
}
s = p.mapShareInfo(s)
s = p.mapShareInfo(*s)
server.IndexWithShare(p.ds, ui.BuildAssets(), s)(w, r)
}
func (p *Router) mapShareInfo(s *model.Share) *model.Share {
func (p *Router) mapShareInfo(s model.Share) *model.Share {
mapped := &model.Share{
Description: s.Description,
Tracks: s.Tracks,
}
for i := range s.Tracks {
// TODO Use Encode(Artwork)ID?
claims := map[string]any{"id": s.Tracks[i].ID}
if s.Format != "" {
claims["f"] = s.Format
}
if s.MaxBitRate != 0 {
claims["b"] = s.MaxBitRate
}
id, _ := auth.CreateExpiringPublicToken(s.ExpiresAt, claims)
mapped.Tracks[i].ID = id
mapped.Tracks[i].ID = encodeMediafileShare(s, s.Tracks[i].ID)
}
return mapped
}