MCPcopy Index your code
hub / github.com/mpolden/echoip / ServeHTTP

Method ServeHTTP

http/http.go:411–435  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

409}
410
411func (fn appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
412 if e := fn(w, r); e != nil { // e is *appError
413 if e.Code/100 == 5 {
414 log.Println(e.Error)
415 }
416 // When Content-Type for error is JSON, we need to marshal the response into JSON
417 if e.IsJSON() {
418 var data = struct {
419 Code int `json:"status"`
420 Error string `json:"error"`
421 }{e.Code, e.Message}
422 b, err := json.MarshalIndent(data, "", " ")
423 if err != nil {
424 panic(err)
425 }
426 e.Message = string(b)
427 }
428 // Set Content-Type of response if set in error
429 if e.ContentType != "" {
430 w.Header().Set("Content-Type", e.ContentType)
431 }
432 w.WriteHeader(e.Code)
433 fmt.Fprint(w, e.Message)
434 }
435}
436
437func (s *Server) Handler() http.Handler {
438 r := NewRouter()

Callers 1

wrapHandlerFuncFunction · 0.80

Calls 3

IsJSONMethod · 0.80
HeaderMethod · 0.80
SetMethod · 0.45

Tested by

no test coverage detected