(resp http.ResponseWriter, req *http.Request, err error)
| 158 | } |
| 159 | |
| 160 | func ErrorHandler(resp http.ResponseWriter, req *http.Request, err error) { |
| 161 | if err == nil { |
| 162 | return |
| 163 | } |
| 164 | |
| 165 | if ok, _ := getWritten(resp); ok { |
| 166 | return // a response was already written (aka. already handled) |
| 167 | } |
| 168 | |
| 169 | header := resp.Header() |
| 170 | if header.Get("Content-Type") == "" { |
| 171 | header.Set("Content-Type", "application/json") |
| 172 | } |
| 173 | |
| 174 | apiErr := ToApiError(err) |
| 175 | |
| 176 | resp.WriteHeader(apiErr.Status) |
| 177 | |
| 178 | if req.Method != http.MethodHead { |
| 179 | if jsonErr := json.NewEncoder(resp).Encode(apiErr); jsonErr != nil { |
| 180 | log.Println(jsonErr) // truly rare case, log to stderr only for dev purposes |
| 181 | } |
| 182 | } |
| 183 | } |
| 184 | |
| 185 | // ------------------------------------------------------------------- |
| 186 |
no test coverage detected
searching dependent graphs…