Merge pull request #80 from KirillovDenis/bugfix/30-correct_404_error

[#30] Fix not found responses
This commit is contained in:
Alex Vanin 2021-07-21 11:22:28 +03:00 committed by GitHub
commit 4d3d80f007
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -18,8 +18,6 @@ import (
"github.com/nspcc-dev/neofs-sdk-go/pkg/pool" "github.com/nspcc-dev/neofs-sdk-go/pkg/pool"
"github.com/valyala/fasthttp" "github.com/valyala/fasthttp"
"go.uber.org/zap" "go.uber.org/zap"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
) )
type ( type (
@ -210,12 +208,13 @@ func (r *request) handleNeoFSErr(err error, start time.Time) {
for unwrap := errors.Unwrap(err); unwrap != nil; unwrap = errors.Unwrap(cause) { for unwrap := errors.Unwrap(err); unwrap != nil; unwrap = errors.Unwrap(cause) {
cause = unwrap cause = unwrap
} }
if st, ok := status.FromError(cause); ok && st != nil {
if st.Code() == codes.NotFound { if strings.Contains(cause.Error(), "not found") ||
code = fasthttp.StatusNotFound strings.Contains(cause.Error(), "can't fetch container info") {
} code = fasthttp.StatusNotFound
msg = st.Message() msg = errObjectNotFound.Error()
} }
r.Error(msg, code) r.Error(msg, code)
} }