Add errorlint linter
This commit is contained in:
@@ -2,6 +2,7 @@ package subsonic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"net/http/httptest"
|
||||
|
||||
"github.com/navidrome/navidrome/server/subsonic/responses"
|
||||
@@ -46,9 +47,12 @@ var _ = Describe("AlbumListController", func() {
|
||||
It("should fail if missing type parameter", func() {
|
||||
r := newGetRequest()
|
||||
_, err := controller.GetAlbumList(w, r)
|
||||
var subErr subError
|
||||
isSubError := errors.As(err, &subErr)
|
||||
|
||||
Expect(err).To(MatchError("required 'type' parameter is missing"))
|
||||
Expect(err.(subError).code).To(Equal(responses.ErrorMissingParameter))
|
||||
Expect(isSubError).To(BeTrue())
|
||||
Expect(subErr).To(MatchError("required 'type' parameter is missing"))
|
||||
Expect(subErr.code).To(Equal(responses.ErrorMissingParameter))
|
||||
})
|
||||
|
||||
It("should return error if call fails", func() {
|
||||
@@ -58,7 +62,9 @@ var _ = Describe("AlbumListController", func() {
|
||||
_, err := controller.GetAlbumList(w, r)
|
||||
|
||||
Expect(err).ToNot(BeNil())
|
||||
Expect(err.(subError).code).To(Equal(responses.ErrorGeneric))
|
||||
var subErr subError
|
||||
errors.As(err, &subErr)
|
||||
Expect(subErr.code).To(Equal(responses.ErrorGeneric))
|
||||
})
|
||||
})
|
||||
|
||||
@@ -82,8 +88,11 @@ var _ = Describe("AlbumListController", func() {
|
||||
r := newGetRequest()
|
||||
_, err := controller.GetAlbumList2(w, r)
|
||||
|
||||
Expect(err).To(MatchError("required 'type' parameter is missing"))
|
||||
Expect(err.(subError).code).To(Equal(responses.ErrorMissingParameter))
|
||||
var subErr subError
|
||||
errors.As(err, &subErr)
|
||||
|
||||
Expect(subErr).To(MatchError("required 'type' parameter is missing"))
|
||||
Expect(subErr.code).To(Equal(responses.ErrorMissingParameter))
|
||||
})
|
||||
|
||||
It("should return error if call fails", func() {
|
||||
@@ -92,8 +101,10 @@ var _ = Describe("AlbumListController", func() {
|
||||
|
||||
_, err := controller.GetAlbumList2(w, r)
|
||||
|
||||
Expect(err).ToNot(BeNil())
|
||||
Expect(err.(subError).code).To(Equal(responses.ErrorGeneric))
|
||||
var subErr subError
|
||||
errors.As(err, &subErr)
|
||||
Expect(subErr).ToNot(BeNil())
|
||||
Expect(subErr.code).To(Equal(responses.ErrorGeneric))
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -183,7 +183,8 @@ func h(r chi.Router, path string, f handler) {
|
||||
res, err := f(w, r)
|
||||
if err != nil {
|
||||
// If it is not a Subsonic error, convert it to an ErrorGeneric
|
||||
if _, ok := err.(subError); !ok {
|
||||
var subErr subError
|
||||
if !errors.As(err, &subErr) {
|
||||
if errors.Is(err, model.ErrNotFound) {
|
||||
err = newError(responses.ErrorDataNotFound, "data not found")
|
||||
} else {
|
||||
@@ -233,8 +234,9 @@ func h410(r chi.Router, paths ...string) {
|
||||
func sendError(w http.ResponseWriter, r *http.Request, err error) {
|
||||
response := newResponse()
|
||||
code := responses.ErrorGeneric
|
||||
if e, ok := err.(subError); ok {
|
||||
code = e.code
|
||||
var subErr subError
|
||||
if errors.As(err, &subErr) {
|
||||
code = subErr.code
|
||||
}
|
||||
response.Status = "failed"
|
||||
response.Error = &responses.Error{Code: code, Message: err.Error()}
|
||||
|
||||
Reference in New Issue
Block a user