From fa210a0dd365e12ee7c211a4210214a899cad680 Mon Sep 17 00:00:00 2001
From: Alex <alexellis2@gmail.com>
Date: Thu, 27 Jul 2017 08:43:52 +0100
Subject: [PATCH] Move HttpAdapter to own file

---
 gateway/server.go             | 43 +----------------------------------
 gateway/types/http_adapter.go | 42 ++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 42 deletions(-)
 create mode 100644 gateway/types/http_adapter.go

diff --git a/gateway/server.go b/gateway/server.go
index 32b52f62..4ba3df30 100644
--- a/gateway/server.go
+++ b/gateway/server.go
@@ -120,58 +120,20 @@ func main() {
 	log.Fatal(s.ListenAndServe())
 }
 
-// WriteAdapter adapts a ResponseWriter
-type WriteAdapter struct {
-	Writer     http.ResponseWriter
-	HttpResult *HttpResult
-}
-type HttpResult struct {
-	HeaderCode int
-}
-
-//NewWriteAdapter create a new NewWriteAdapter
-func NewWriteAdapter(w http.ResponseWriter) WriteAdapter {
-	return WriteAdapter{Writer: w, HttpResult: &HttpResult{}}
-}
-
-//Header adapts Header
-func (w WriteAdapter) Header() http.Header {
-	return w.Writer.Header()
-}
-
-// Write adapts Write
-func (w WriteAdapter) Write(data []byte) (int, error) {
-	return w.Writer.Write(data)
-}
-
-// WriteHeader adapts WriteHeader
-func (w WriteAdapter) WriteHeader(i int) {
-	w.Writer.WriteHeader(i)
-	w.HttpResult.HeaderCode = i
-	fmt.Println("GetHeaderCode before", w.HttpResult.HeaderCode)
-}
-
-// GetHeaderCode result from WriteHeader
-func (w *WriteAdapter) GetHeaderCode() int {
-	return w.HttpResult.HeaderCode
-}
-
 func makeHandler(proxy *httputil.ReverseProxy, metrics *metrics.MetricOptions) http.HandlerFunc {
-	// return func(http.ResponseWriter, *http.Request) {
 	return func(w http.ResponseWriter, r *http.Request) {
 		uri := r.URL.String()
 
 		log.Printf("Forwarding [%s] to %s", r.Method, r.URL.String())
 		start := time.Now()
 
-		writeAdapter := NewWriteAdapter(w)
+		writeAdapter := types.NewWriteAdapter(w)
 		proxy.ServeHTTP(writeAdapter, r)
 
 		seconds := time.Since(start).Seconds()
 		fmt.Printf("[%d] took %f seconds\n", writeAdapter.GetHeaderCode(), seconds)
 
 		forward := "/function/"
-		// fmt.Println(uri)
 		if len(uri) > len(forward) && strings.Index(uri, forward) == 0 {
 			fmt.Println("function=", uri[len(forward):])
 			service := uri[len(forward):]
@@ -180,8 +142,5 @@ func makeHandler(proxy *httputil.ReverseProxy, metrics *metrics.MetricOptions) h
 			metrics.GatewayFunctionInvocation.With(prometheus.Labels{"function_name": service, "code": strconv.Itoa(code)}).Inc()
 
 		}
-
-		// metricsOptions.
 	}
-	// }
 }
diff --git a/gateway/types/http_adapter.go b/gateway/types/http_adapter.go
new file mode 100644
index 00000000..38469c2a
--- /dev/null
+++ b/gateway/types/http_adapter.go
@@ -0,0 +1,42 @@
+package types
+
+import (
+	"fmt"
+	"net/http"
+)
+
+// WriteAdapter adapts a ResponseWriter
+type WriteAdapter struct {
+	Writer     http.ResponseWriter
+	HttpResult *HttpResult
+}
+type HttpResult struct {
+	HeaderCode int
+}
+
+//NewWriteAdapter create a new NewWriteAdapter
+func NewWriteAdapter(w http.ResponseWriter) WriteAdapter {
+	return WriteAdapter{Writer: w, HttpResult: &HttpResult{}}
+}
+
+//Header adapts Header
+func (w WriteAdapter) Header() http.Header {
+	return w.Writer.Header()
+}
+
+// Write adapts Write
+func (w WriteAdapter) Write(data []byte) (int, error) {
+	return w.Writer.Write(data)
+}
+
+// WriteHeader adapts WriteHeader
+func (w WriteAdapter) WriteHeader(i int) {
+	w.Writer.WriteHeader(i)
+	w.HttpResult.HeaderCode = i
+	fmt.Println("GetHeaderCode before", w.HttpResult.HeaderCode)
+}
+
+// GetHeaderCode result from WriteHeader
+func (w *WriteAdapter) GetHeaderCode() int {
+	return w.HttpResult.HeaderCode
+}
-- 
GitLab