MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / writeError

Function writeError

pkg/interop/server_errors.go:24–54  ·  view source on GitHub ↗
(w http.ResponseWriter, _ *http.Request, header MessageHeader, err error)

Source from the content-addressed store, hash-verified

22)
23
24func writeError(w http.ResponseWriter, _ *http.Request, header MessageHeader, err error) {
25 answerHeader, headerErr := header.AnswerHeader()
26 if headerErr != nil {
27 w.WriteHeader(http.StatusBadRequest)
28 return
29 }
30
31 code, desc := ResultOther, err.Error()
32 for errDef, protocolCode := range errorResultCodes {
33 if ttnerrors.Resemble(errDef, err) {
34 if c, ok := protocolCode[header.ProtocolVersion]; ok {
35 code = c
36 if cause := ttnerrors.Cause(err); cause != nil {
37 desc = cause.Error()
38 } else {
39 desc = ""
40 }
41 }
42 break
43 }
44 }
45
46 msg := ErrorMessage{
47 MessageHeader: answerHeader,
48 Result: Result{
49 ResultCode: code,
50 Description: desc,
51 },
52 }
53 json.NewEncoder(w).Encode(msg) //nolint:errcheck
54}

Callers 1

handleMethod · 0.70

Calls 5

AnswerHeaderMethod · 0.80
NewEncoderMethod · 0.80
ErrorMethod · 0.65
CauseMethod · 0.65
EncodeMethod · 0.65

Tested by

no test coverage detected