@@ -3,8 +3,9 @@ package handler
33type (
44 // Response struct
55 Response struct {
6- Data interface {}
7- Code * int
6+ Data interface {}
7+ DebugData interface {}
8+ Code * int
89 }
910
1011 // JSONErrorResponse struct
@@ -13,27 +14,72 @@ type (
1314 }
1415)
1516
17+ // NewJSONErrorResponse creates a new error response
18+ func NewJSONErrorResponse (err error ) JSONErrorResponse {
19+ return JSONErrorResponse {Error : err .Error ()}
20+ }
21+
22+ // newResponse creates a new response
23+ func newResponse (
24+ data interface {},
25+ debugData interface {},
26+ code * int ,
27+ ) * Response {
28+ return & Response {Data : data , DebugData : debugData , Code : code }
29+ }
30+
31+ // NewDebugResponseWithCode creates a new response with a code
32+ func NewDebugResponseWithCode (
33+ data interface {},
34+ debugData interface {},
35+ code int ,
36+ ) * Response {
37+ return newResponse (data , debugData , & code )
38+ }
39+
40+ // NewDebugErrorResponseWithCode creates a new error response with a code
41+ func NewDebugErrorResponseWithCode (
42+ err error ,
43+ debugErr error ,
44+ code int ,
45+ ) * Response {
46+ return newResponse (
47+ NewJSONErrorResponse (err ),
48+ NewJSONErrorResponse (debugErr ),
49+ & code ,
50+ )
51+ }
52+
1653// NewResponseWithCode creates a new response with a code
1754func NewResponseWithCode (data interface {}, code int ) * Response {
18- return & Response { Data : data , Code : & code }
55+ return newResponse ( data , nil , & code )
1956}
2057
2158// NewErrorResponseWithCode creates a new error response with a code
2259func NewErrorResponseWithCode (err error , code int ) * Response {
23- return & Response {Data : NewJSONErrorResponse (err ), Code : & code }
60+ return newResponse (NewJSONErrorResponse (err ), nil , & code )
61+ }
62+
63+ // NewDebugResponse creates a new response
64+ func NewDebugResponse (data interface {}, debugData interface {}) * Response {
65+ return newResponse (data , debugData , nil )
66+ }
67+
68+ // NewDebugErrorResponse creates a new error response
69+ func NewDebugErrorResponse (err error , debugErr error ) * Response {
70+ return newResponse (
71+ NewJSONErrorResponse (err ),
72+ NewJSONErrorResponse (debugErr ),
73+ nil ,
74+ )
2475}
2576
2677// NewResponse creates a new response
2778func NewResponse (data interface {}) * Response {
28- return & Response { Data : data }
79+ return newResponse ( data , nil , nil )
2980}
3081
3182// NewErrorResponse creates a new error response
3283func NewErrorResponse (err error ) * Response {
33- return & Response {Data : NewJSONErrorResponse (err )}
34- }
35-
36- // NewJSONErrorResponse creates a new error response
37- func NewJSONErrorResponse (err error ) JSONErrorResponse {
38- return JSONErrorResponse {Error : err .Error ()}
84+ return newResponse (NewJSONErrorResponse (err ), nil , nil )
3985}
0 commit comments