mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
all: use errors.As
for inspecting errors that implement httpserver.ErrorWithStatusCode
This commit is contained in:
parent
d962568e93
commit
0c4e8aeb2b
2 changed files with 6 additions and 2 deletions
|
@ -1,6 +1,7 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
@ -318,7 +319,8 @@ func sendPrometheusError(w http.ResponseWriter, r *http.Request, err error) {
|
|||
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
statusCode := http.StatusUnprocessableEntity
|
||||
if esc, ok := err.(*httpserver.ErrorWithStatusCode); ok {
|
||||
var esc *httpserver.ErrorWithStatusCode
|
||||
if errors.As(err, &esc) {
|
||||
statusCode = esc.StatusCode
|
||||
}
|
||||
w.WriteHeader(statusCode)
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"bufio"
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
|
@ -436,8 +437,9 @@ func Errorf(w http.ResponseWriter, format string, args ...interface{}) {
|
|||
|
||||
// Extract statusCode from args
|
||||
statusCode := http.StatusBadRequest
|
||||
var esc *ErrorWithStatusCode
|
||||
for _, arg := range args {
|
||||
if esc, ok := arg.(*ErrorWithStatusCode); ok {
|
||||
if err, ok := arg.(error); ok && errors.As(err, &esc) {
|
||||
statusCode = esc.StatusCode
|
||||
break
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue