Skip to content

Commit ab8b329

Browse files
committed
refactor: adopt JSend conventions
1 parent bb9b4e9 commit ab8b329

File tree

13 files changed

+189
-139
lines changed

13 files changed

+189
-139
lines changed

http/handler/constants.go

Lines changed: 0 additions & 6 deletions
This file was deleted.

http/handler/handler.go

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -97,20 +97,18 @@ func (d *DefaultHandler) HandleValidations(
9797
if err != nil {
9898
d.HandleResponse(
9999
w,
100-
gonethttpresponse.NewDebugErrorResponseWithCode(
100+
gonethttpresponse.NewDebugErrorResponse(
101101
gonethttperrors.InternalServerError,
102102
err,
103+
nil, nil,
103104
http.StatusInternalServerError,
104105
),
105106
)
106107
} else {
107108
d.HandleResponse(
108109
w,
109-
gonethttpresponse.NewResponseWithCode(
110-
gonethttpresponse.NewJSONValidationErrorResponse(
111-
validations,
112-
FailedValidations,
113-
),
110+
gonethttpresponse.NewFailResponse(
111+
validations,
114112
http.StatusBadRequest,
115113
),
116114
)
@@ -139,42 +137,33 @@ func (d *DefaultHandler) HandleResponse(
139137
w http.ResponseWriter,
140138
response *gonethttpresponse.Response,
141139
) {
142-
// Check if the response or response code is nil
140+
// Check if the response is nil
143141
if response == nil {
144142
d.HandleResponse(
145143
w,
146-
gonethttpresponse.NewDebugErrorResponseWithCode(
144+
gonethttpresponse.NewDebugErrorResponse(
147145
gonethttperrors.InternalServerError,
148146
gonethttpresponse.ErrNilResponse,
147+
nil, nil,
149148
http.StatusInternalServerError,
150149
),
151150
)
152151
return
153152
}
154-
if response.Code == nil {
155-
d.HandleResponse(
156-
w,
157-
gonethttpresponse.NewDebugErrorResponseWithCode(
158-
gonethttperrors.InternalServerError,
159-
gonethttpresponse.ErrNilResponseCode,
160-
http.StatusInternalServerError,
161-
),
162-
)
163-
}
164153

165-
// Check if the response contains debug data
166-
if response.DebugData != nil && d.mode != nil && d.mode.IsDebug() {
154+
// Check if the response contains the debug response
155+
if response.DebugResponse != nil && d.mode != nil && d.mode.IsDebug() {
167156
_ = d.jsonEncoder.Encode(
168157
w,
169-
response.DebugData,
170-
*response.Code,
158+
response.DebugResponse,
159+
response.HTTPStatus,
171160
)
172161
return
173162
}
174163
_ = d.jsonEncoder.Encode(
175164
w,
176-
response.Data,
177-
*response.Code,
165+
response.Response,
166+
response.HTTPStatus,
178167
)
179168
}
180169

http/json/data.go

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package json
22

33
import (
44
goflagsmode "github.com/ralvarezdev/go-flags/mode"
5-
gonethttp "github.com/ralvarezdev/go-net/http"
5+
gonethttp "github.com/ralvarezdev/go-net/http/errors"
66
gonethttpresponse "github.com/ralvarezdev/go-net/http/response"
77
"net/http"
88
)
@@ -17,7 +17,14 @@ func checkJSONData(
1717
// Check if data is nil
1818
if data == nil {
1919
err = ErrNilJSONData
20-
encodeError(w, err, http.StatusInternalServerError, mode, encoder)
20+
encodeError(
21+
w,
22+
gonethttp.InternalServerError,
23+
err,
24+
http.StatusInternalServerError,
25+
mode,
26+
encoder,
27+
)
2128
}
2229
return err
2330
}
@@ -26,38 +33,41 @@ func checkJSONData(
2633
func encodeError(
2734
w http.ResponseWriter,
2835
err error,
29-
code int,
36+
debugErr error,
37+
httpStatus int,
3038
mode *goflagsmode.Flag,
3139
encoder Encoder,
3240
) {
3341
var data interface{}
3442
var dataStr string
3543

3644
// Check if the mode is debug and the encoder is nil
37-
if mode != nil && mode.IsDebug() {
38-
if encoder != nil {
39-
data = gonethttpresponse.NewJSONErrorResponse(err)
40-
} else {
41-
dataStr = err.Error()
42-
}
43-
} else if encoder != nil {
44-
data = gonethttpresponse.InternalServerError
45+
if encoder != nil {
46+
data = gonethttpresponse.NewDebugErrorResponse(
47+
err,
48+
debugErr,
49+
nil,
50+
nil,
51+
httpStatus,
52+
)
53+
} else if mode != nil && mode.IsDebug() {
54+
dataStr = debugErr.Error()
4555
} else {
46-
dataStr = gonethttp.InternalServerError
56+
dataStr = err.Error()
4757
}
4858

4959
// Encode the data
5060
if encoder != nil {
5161
_ = encoder.Encode(
5262
w,
5363
data,
54-
code,
64+
httpStatus,
5565
)
5666
} else {
5767
http.Error(
5868
w,
5969
dataStr,
60-
code,
70+
httpStatus,
6171
)
6272
}
6373
}

http/json/decoder.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,12 @@ func (d *DefaultDecoder) Decode(
5757
if err != nil {
5858
_ = d.encoder.Encode(
5959
w,
60-
gonethttpresponse.NewJSONErrorResponse(err),
60+
gonethttpresponse.NewErrorResponse(
61+
err,
62+
nil,
63+
nil,
64+
http.StatusBadRequest,
65+
),
6166
http.StatusBadRequest,
6267
)
6368
return err
@@ -67,7 +72,12 @@ func (d *DefaultDecoder) Decode(
6772
if err = json.Unmarshal(body, data); err != nil {
6873
_ = d.encoder.Encode(
6974
w,
70-
gonethttpresponse.NewJSONErrorResponse(err),
75+
gonethttpresponse.NewErrorResponse(
76+
err,
77+
nil,
78+
nil,
79+
http.StatusBadRequest,
80+
),
7181
http.StatusBadRequest,
7282
)
7383
}

http/json/encoder.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,17 @@ func (d *DefaultEncoder) Encode(
4343
// Encode the data
4444
jsonData, err := json.Marshal(data)
4545
if err != nil {
46-
if d.mode != nil && d.mode.IsDebug() {
47-
_ = d.Encode(
48-
w,
49-
gonethttpresponse.NewJSONErrorResponse(err),
50-
http.StatusInternalServerError,
51-
)
52-
} else {
53-
_ = d.Encode(
54-
w,
46+
_ = d.Encode(
47+
w,
48+
gonethttpresponse.NewDebugErrorResponse(
5549
gonethttperrors.InternalServerError,
56-
http.StatusInternalServerError,
57-
)
58-
}
50+
err,
51+
nil,
52+
nil,
53+
http.StatusBadRequest,
54+
),
55+
http.StatusInternalServerError,
56+
)
5957
return err
6058
}
6159

http/json/stream_decoder.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@ func (d *DefaultStreamDecoder) Decode(
4646
if err = json.NewDecoder(r.Body).Decode(data); err != nil {
4747
_ = d.encoder.Encode(
4848
w,
49-
gonethttpresponse.NewJSONErrorResponse(err),
49+
gonethttpresponse.NewErrorResponse(
50+
err,
51+
nil,
52+
nil,
53+
http.StatusInternalServerError,
54+
),
5055
http.StatusInternalServerError,
5156
)
5257
}

http/json/stream_encoder.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,17 @@ func (d *DefaultStreamEncoder) Encode(
3535

3636
// Encode JSON data and write it to the response
3737
if err = json.NewEncoder(w).Encode(data); err != nil {
38-
if d.mode != nil && d.mode.IsDebug() {
39-
_ = d.Encode(
40-
w,
41-
gonethttpresponse.NewJSONErrorResponse(err),
42-
http.StatusInternalServerError,
43-
)
44-
} else {
45-
_ = d.Encode(
46-
w,
38+
_ = d.Encode(
39+
w,
40+
gonethttpresponse.NewDebugErrorResponse(
4741
gonethttperrors.InternalServerError,
42+
err,
43+
nil,
44+
nil,
4845
http.StatusInternalServerError,
49-
)
50-
}
46+
),
47+
http.StatusInternalServerError,
48+
)
5149
return err
5250
}
5351
w.Header().Set("Content-Type", "application/json")

http/jwt/validator/handler.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@ func NewDefaultErrorHandler(
1919
}
2020

2121
return func(w http.ResponseWriter, err error) {
22-
response := gonethttpresponse.NewJSONErrorResponse(err)
22+
response := gonethttpresponse.NewErrorResponse(
23+
err,
24+
nil,
25+
nil,
26+
http.StatusInternalServerError,
27+
)
2328

2429
// Encode the response
2530
_ = jsonEncoder.Encode(w, &response, http.StatusInternalServerError)

http/middleware/auth/middleware.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
gonethttp "github.com/ralvarezdev/go-net/http/errors"
1010
gonethttphandler "github.com/ralvarezdev/go-net/http/handler"
1111
gonethttpjwtvalidator "github.com/ralvarezdev/go-net/http/jwt/validator"
12-
"github.com/ralvarezdev/go-net/http/response"
12+
gonethttpresponse "github.com/ralvarezdev/go-net/http/response"
1313
"net/http"
1414
"strings"
1515
)
@@ -63,8 +63,9 @@ func (m *Middleware) Authenticate(
6363
if !ok {
6464
m.handler.HandleResponse(
6565
w,
66-
response.NewErrorResponseWithCode(
66+
gonethttpresponse.NewErrorResponse(
6767
gonethttp.ErrInvalidAuthorizationHeader,
68+
nil, nil,
6869
http.StatusUnauthorized,
6970
),
7071
)
@@ -78,8 +79,9 @@ func (m *Middleware) Authenticate(
7879
if len(parts) < 2 || parts[0] != gojwt.BearerPrefix {
7980
m.handler.HandleResponse(
8081
w,
81-
response.NewErrorResponseWithCode(
82+
gonethttpresponse.NewErrorResponse(
8283
gonethttp.ErrInvalidAuthorizationHeader,
84+
nil, nil,
8385
http.StatusUnauthorized,
8486
),
8587
)

http/response/common.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,14 @@ package response
22

33
import (
44
gonethttp "github.com/ralvarezdev/go-net/http"
5+
"net/http"
56
)
67

78
var (
8-
InternalServerError = NewJSONErrorResponseFromString(gonethttp.InternalServerError)
9+
InternalServerError = NewErrorResponse(
10+
gonethttp.InternalServerError,
11+
nil,
12+
nil,
13+
http.StatusInternalServerError,
14+
)
915
)

0 commit comments

Comments
 (0)