Add context to all methods in engine layer
This commit is contained in:
@@ -22,7 +22,7 @@ func NewBrowsingController(browser engine.Browser) *BrowsingController {
|
||||
}
|
||||
|
||||
func (c *BrowsingController) GetMusicFolders(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
||||
mediaFolderList, _ := c.browser.MediaFolders()
|
||||
mediaFolderList, _ := c.browser.MediaFolders(r.Context())
|
||||
folders := make([]responses.MusicFolder, len(mediaFolderList))
|
||||
for i, f := range mediaFolderList {
|
||||
folders[i].Id = f.ID
|
||||
@@ -34,7 +34,7 @@ func (c *BrowsingController) GetMusicFolders(w http.ResponseWriter, r *http.Requ
|
||||
}
|
||||
|
||||
func (c *BrowsingController) getArtistIndex(r *http.Request, ifModifiedSince time.Time) (*responses.Indexes, error) {
|
||||
indexes, lastModified, err := c.browser.Indexes(ifModifiedSince)
|
||||
indexes, lastModified, err := c.browser.Indexes(r.Context(), ifModifiedSince)
|
||||
if err != nil {
|
||||
log.Error(r, "Error retrieving Indexes", "error", err)
|
||||
return nil, NewError(responses.ErrorGeneric, "Internal Error")
|
||||
@@ -152,7 +152,7 @@ func (c *BrowsingController) GetSong(w http.ResponseWriter, r *http.Request) (*r
|
||||
}
|
||||
|
||||
func (c *BrowsingController) GetGenres(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
||||
genres, err := c.browser.GetGenres()
|
||||
genres, err := c.browser.GetGenres(r.Context())
|
||||
if err != nil {
|
||||
log.Error(r, err)
|
||||
return nil, NewError(responses.ErrorGeneric, "Internal Error")
|
||||
|
||||
@@ -39,7 +39,7 @@ func (c *MediaRetrievalController) GetCoverArt(w http.ResponseWriter, r *http.Re
|
||||
}
|
||||
size := ParamInt(r, "size", 0)
|
||||
|
||||
err = c.cover.Get(id, size, w)
|
||||
err = c.cover.Get(r.Context(), id, size, w)
|
||||
|
||||
switch {
|
||||
case err == model.ErrNotFound:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package subsonic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"net/http/httptest"
|
||||
@@ -17,7 +18,7 @@ type fakeCover struct {
|
||||
recvSize int
|
||||
}
|
||||
|
||||
func (c *fakeCover) Get(id string, size int, out io.Writer) error {
|
||||
func (c *fakeCover) Get(ctx context.Context, id string, size int, out io.Writer) error {
|
||||
if c.err != nil {
|
||||
return c.err
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ func authenticate(users engine.Users) func(next http.Handler) http.Handler {
|
||||
token := ParamString(r, "t")
|
||||
salt := ParamString(r, "s")
|
||||
|
||||
usr, err := users.Authenticate(username, pass, token, salt)
|
||||
usr, err := users.Authenticate(r.Context(), username, pass, token, salt)
|
||||
if err == model.ErrInvalidAuth {
|
||||
log.Warn(r, "Invalid login", "username", username, err)
|
||||
} else if err != nil {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package subsonic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
@@ -113,7 +114,7 @@ type mockUsers struct {
|
||||
username, password, token, salt string
|
||||
}
|
||||
|
||||
func (m *mockUsers) Authenticate(username, password, token, salt string) (*model.User, error) {
|
||||
func (m *mockUsers) Authenticate(ctx context.Context, username, password, token, salt string) (*model.User, error) {
|
||||
m.username = username
|
||||
m.password = password
|
||||
m.token = token
|
||||
|
||||
@@ -20,7 +20,7 @@ func NewPlaylistsController(pls engine.Playlists) *PlaylistsController {
|
||||
}
|
||||
|
||||
func (c *PlaylistsController) GetPlaylists(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
||||
allPls, err := c.pls.GetAll()
|
||||
allPls, err := c.pls.GetAll(r.Context())
|
||||
if err != nil {
|
||||
log.Error(r, err)
|
||||
return nil, NewError(responses.ErrorGeneric, "Internal error")
|
||||
|
||||
Reference in New Issue
Block a user