This repository was archived by the owner on Dec 11, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -38,6 +38,7 @@ type message struct {
38
38
39
39
type responseWrapper struct {
40
40
http.ResponseWriter
41
+ StatusCode int
41
42
Body []byte
42
43
}
43
44
@@ -71,6 +72,10 @@ func (rw *responseWrapper) Write(data []byte) (int, error) {
71
72
return len (data ), nil
72
73
}
73
74
75
+ func (rw * responseWrapper ) WriteHeader (statusCode int ) {
76
+ rw .StatusCode = statusCode ;
77
+ }
78
+
74
79
func setupEnv () error {
75
80
environment ["_HANDLER" ], _ = os .LookupEnv ("_HANDLER" )
76
81
environment ["LAMBDA_TASK_ROOT" ], _ = os .LookupEnv ("LAMBDA_TASK_ROOT" )
@@ -206,12 +211,12 @@ func responseHandler(w http.ResponseWriter, r *http.Request) {
206
211
func mapEvent (h http.Handler ) http.Handler {
207
212
eventType , _ := os .LookupEnv ("EVENT" )
208
213
return http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
209
- rw := responseWrapper {w , []byte {}}
214
+ rw := responseWrapper {w , 200 , []byte {}}
210
215
switch eventType {
211
216
case "API_GATEWAY" :
212
217
apiGateway .Request (r )
213
218
h .ServeHTTP (& rw , r )
214
- apiGateway .Response (w , rw .Body )
219
+ apiGateway .Response (w , rw .StatusCode , rw . Body )
215
220
default :
216
221
h .ServeHTTP (w , r )
217
222
}
Original file line number Diff line number Diff line change @@ -40,14 +40,19 @@ func Request(r *http.Request) {
40
40
r .Body = ioutil .NopCloser (bytes .NewBuffer (js ))
41
41
}
42
42
43
- func Response (w http.ResponseWriter , data []byte ) (int , error ) {
43
+ func Response (w http.ResponseWriter , statusCode int , data []byte ) (int , error ) {
44
44
var js events.APIGatewayProxyResponse
45
45
if err := json .Unmarshal (data , & js ); err != nil {
46
46
return 0 , err
47
47
}
48
48
for k , v := range js .Headers {
49
49
w .Header ().Set (k , v )
50
50
}
51
- w .WriteHeader (js .StatusCode )
51
+
52
+ if js .StatusCode >= 200 {
53
+ statusCode = js .StatusCode
54
+ }
55
+ w .WriteHeader (statusCode )
56
+
52
57
return w .Write ([]byte (js .Body ))
53
58
}
You can’t perform that action at this time.
0 commit comments