(w http.ResponseWriter, r *http.Request)
| 116 | } |
| 117 | |
| 118 | func (ec *ErrorCode) ServeResponse(w http.ResponseWriter, r *http.Request) { |
| 119 | // write status code to request context, |
| 120 | // traceMiddleWare send exception request to prometheus via status code |
| 121 | SetResponseStatusCode(r, strconv.Itoa(ec.StatusCode)) |
| 122 | SetResponseErrorMessage(r, ec.ErrorMessage) |
| 123 | |
| 124 | errorResponse := ErrorResponse{ |
| 125 | Code: ec.ErrorCode, |
| 126 | Message: ec.ErrorMessage, |
| 127 | Resource: r.URL.String(), |
| 128 | RequestId: GetRequestID(r), |
| 129 | } |
| 130 | response, _ := xml.Marshal(errorResponse) |
| 131 | response = append([]byte(strings.TrimSuffix(xml.Header, "\n")), response...) |
| 132 | w.Header().Set(ContentType, ValueContentTypeXML) |
| 133 | w.Header().Set(ContentLength, strconv.Itoa(len(response))) |
| 134 | w.WriteHeader(ec.StatusCode) |
| 135 | _, _ = w.Write(response) |
| 136 | } |
| 137 | |
| 138 | func (ec *ErrorCode) Error() string { |
| 139 | return ec.ErrorMessage |
no test coverage detected