Skip to content

Commit ce46de4

Browse files
committed
Improve the error message of known errors
1 parent d90b94d commit ce46de4

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

main.go

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func (s *SqlQueryService) ServeHTTP(w http.ResponseWriter, r *http.Request) {
4141
decoder := json.NewDecoder(r.Body)
4242
var req QueryRequest
4343
if err := decoder.Decode(&req); err != nil {
44-
respond(w, http.StatusUnprocessableEntity, NewFailedResponse(BadPayloadError{Err: err}))
44+
respond(w, http.StatusUnprocessableEntity, NewFailedResponse(BadPayloadError{Parent: err}))
4545
return
4646
}
4747

@@ -113,7 +113,7 @@ type QueryResponse struct {
113113
}
114114

115115
type BadPayloadError struct {
116-
Err error
116+
Parent error
117117
}
118118

119119
func NewSuccessResponse(data *sqlrunner.QueryResult) QueryResponse {
@@ -124,17 +124,27 @@ func NewSuccessResponse(data *sqlrunner.QueryResult) QueryResponse {
124124
}
125125

126126
func NewFailedResponse(err error) QueryResponse {
127-
code := "INTERNAL_ERROR"
128-
if errors.As(err, &BadPayloadError{}) {
127+
var badPayloadError BadPayloadError
128+
var schemaError sqlrunner.SchemaError
129+
var queryError sqlrunner.QueryError
130+
131+
var code string
132+
var message string
133+
134+
if errors.As(err, &badPayloadError) {
129135
code = "BAD_PAYLOAD"
130-
} else if errors.As(err, &sqlrunner.SchemaError{}) {
136+
message = badPayloadError.Parent.Error()
137+
} else if errors.As(err, &schemaError) {
131138
code = "SCHEMA_ERROR"
132-
} else if errors.As(err, &sqlrunner.QueryError{}) {
139+
message = schemaError.Parent.Error()
140+
} else if errors.As(err, &queryError) {
133141
code = "QUERY_ERROR"
142+
message = queryError.Parent.Error()
143+
} else {
144+
code = "INTERNAL_ERROR"
145+
message = err.Error()
134146
}
135147

136-
message := err.Error()
137-
138148
return QueryResponse{
139149
Success: false,
140150
Message: &message,
@@ -143,11 +153,11 @@ func NewFailedResponse(err error) QueryResponse {
143153
}
144154

145155
func NewBadPayloadError(message string) BadPayloadError {
146-
return BadPayloadError{Err: errors.New(message)}
156+
return BadPayloadError{Parent: errors.New(message)}
147157
}
148158

149159
func (e BadPayloadError) Error() string {
150-
return "Bad Payload: " + e.Err.Error()
160+
return "bad payload: " + e.Parent.Error()
151161
}
152162

153163
func respond(w http.ResponseWriter, status int, data any) {

0 commit comments

Comments
 (0)