mirror of
https://github.com/navidrome/navidrome.git
synced 2025-06-09 20:02:22 +03:00
Remove state from SearchController
This commit is contained in:
parent
dc6b812587
commit
52f682debf
@ -11,6 +11,9 @@ import (
|
|||||||
|
|
||||||
type SearchingController struct {
|
type SearchingController struct {
|
||||||
search engine.Search
|
search engine.Search
|
||||||
|
}
|
||||||
|
|
||||||
|
type searchParams struct {
|
||||||
query string
|
query string
|
||||||
artistCount int
|
artistCount int
|
||||||
artistOffset int
|
artistOffset int
|
||||||
@ -24,45 +27,46 @@ func NewSearchingController(search engine.Search) *SearchingController {
|
|||||||
return &SearchingController{search: search}
|
return &SearchingController{search: search}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *SearchingController) getParams(r *http.Request) error {
|
func (c *SearchingController) getParams(r *http.Request) (*searchParams, error) {
|
||||||
var err error
|
var err error
|
||||||
c.query, err = RequiredParamString(r, "query", "Parameter query required")
|
sp := &searchParams{}
|
||||||
|
sp.query, err = RequiredParamString(r, "query", "Parameter query required")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
c.artistCount = ParamInt(r, "artistCount", 20)
|
sp.artistCount = ParamInt(r, "artistCount", 20)
|
||||||
c.artistOffset = ParamInt(r, "artistOffset", 0)
|
sp.artistOffset = ParamInt(r, "artistOffset", 0)
|
||||||
c.albumCount = ParamInt(r, "albumCount", 20)
|
sp.albumCount = ParamInt(r, "albumCount", 20)
|
||||||
c.albumOffset = ParamInt(r, "albumOffset", 0)
|
sp.albumOffset = ParamInt(r, "albumOffset", 0)
|
||||||
c.songCount = ParamInt(r, "songCount", 20)
|
sp.songCount = ParamInt(r, "songCount", 20)
|
||||||
c.songOffset = ParamInt(r, "songOffset", 0)
|
sp.songOffset = ParamInt(r, "songOffset", 0)
|
||||||
return nil
|
return sp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *SearchingController) searchAll(r *http.Request) (engine.Entries, engine.Entries, engine.Entries) {
|
func (c *SearchingController) searchAll(r *http.Request, sp *searchParams) (engine.Entries, engine.Entries, engine.Entries) {
|
||||||
as, err := c.search.SearchArtist(r.Context(), c.query, c.artistOffset, c.artistCount)
|
as, err := c.search.SearchArtist(r.Context(), sp.query, sp.artistOffset, sp.artistCount)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(r, "Error searching for Artists", err)
|
log.Error(r, "Error searching for Artists", err)
|
||||||
}
|
}
|
||||||
als, err := c.search.SearchAlbum(r.Context(), c.query, c.albumOffset, c.albumCount)
|
als, err := c.search.SearchAlbum(r.Context(), sp.query, sp.albumOffset, sp.albumCount)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(r, "Error searching for Albums", err)
|
log.Error(r, "Error searching for Albums", err)
|
||||||
}
|
}
|
||||||
mfs, err := c.search.SearchSong(r.Context(), c.query, c.songOffset, c.songCount)
|
mfs, err := c.search.SearchSong(r.Context(), sp.query, sp.songOffset, sp.songCount)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(r, "Error searching for MediaFiles", err)
|
log.Error(r, "Error searching for MediaFiles", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Debug(r, fmt.Sprintf("Search resulted in %d songs, %d albums and %d artists", len(mfs), len(als), len(as)), "query", c.query)
|
log.Debug(r, fmt.Sprintf("Search resulted in %d songs, %d albums and %d artists", len(mfs), len(als), len(as)), "query", sp.query)
|
||||||
return mfs, als, as
|
return mfs, als, as
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *SearchingController) Search2(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
func (c *SearchingController) Search2(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
||||||
err := c.getParams(r)
|
sp, err := c.getParams(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
mfs, als, as := c.searchAll(r)
|
mfs, als, as := c.searchAll(r, sp)
|
||||||
|
|
||||||
response := NewEmpty()
|
response := NewEmpty()
|
||||||
searchResult2 := &responses.SearchResult2{}
|
searchResult2 := &responses.SearchResult2{}
|
||||||
@ -77,11 +81,11 @@ func (c *SearchingController) Search2(w http.ResponseWriter, r *http.Request) (*
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *SearchingController) Search3(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
func (c *SearchingController) Search3(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
||||||
err := c.getParams(r)
|
sp, err := c.getParams(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
mfs, als, as := c.searchAll(r)
|
mfs, als, as := c.searchAll(r, sp)
|
||||||
|
|
||||||
response := NewEmpty()
|
response := NewEmpty()
|
||||||
searchResult3 := &responses.SearchResult3{}
|
searchResult3 := &responses.SearchResult3{}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user