Add context to all methods in engine layer

This commit is contained in:
Deluan
2020-01-22 08:32:31 -05:00
parent c73f549c83
commit f0ee41a8af
14 changed files with 44 additions and 37 deletions
+3 -3
View File
@@ -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")
+1 -1
View File
@@ -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:
+2 -1
View File
@@ -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
}
+1 -1
View File
@@ -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 {
+2 -1
View File
@@ -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
+1 -1
View File
@@ -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")