Przeglądaj źródła

simplify code with http.Flusher type conversion (#325)

* simplify code with http.Flusher type conversion

* simplify code with http.Flusher type conversion, better version
Kevin Wan 4 lat temu
rodzic
commit
e97e1f10db

+ 9 - 9
rest/handler/authhandler.go

@@ -46,18 +46,18 @@ func Authorize(secret string, opts ...AuthorizeOption) func(http.Handler) http.H
 	parser := token.NewTokenParser()
 	return func(next http.Handler) http.Handler {
 		return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-			token, err := parser.ParseToken(r, secret, authOpts.PrevSecret)
+			tok, err := parser.ParseToken(r, secret, authOpts.PrevSecret)
 			if err != nil {
 				unauthorized(w, r, err, authOpts.Callback)
 				return
 			}
 
-			if !token.Valid {
+			if !tok.Valid {
 				unauthorized(w, r, errInvalidToken, authOpts.Callback)
 				return
 			}
 
-			claims, ok := token.Claims.(jwt.MapClaims)
+			claims, ok := tok.Claims.(jwt.MapClaims)
 			if !ok {
 				unauthorized(w, r, errNoClaims, authOpts.Callback)
 				return
@@ -122,6 +122,12 @@ func newGuardedResponseWriter(w http.ResponseWriter) *guardedResponseWriter {
 	}
 }
 
+func (grw *guardedResponseWriter) Flush() {
+	if flusher, ok := grw.writer.(http.Flusher); ok {
+		flusher.Flush()
+	}
+}
+
 func (grw *guardedResponseWriter) Header() http.Header {
 	return grw.writer.Header()
 }
@@ -138,9 +144,3 @@ func (grw *guardedResponseWriter) WriteHeader(statusCode int) {
 	grw.wroteHeader = true
 	grw.writer.WriteHeader(statusCode)
 }
-
-func (grw *guardedResponseWriter) Flush() {
-	if flusher, ok := grw.writer.(http.Flusher); ok {
-		flusher.Flush()
-	}
-}

+ 1 - 1
rest/handler/authhandler_test.go

@@ -43,7 +43,7 @@ func TestAuthHandler(t *testing.T) {
 			assert.Nil(t, err)
 
 			flusher, ok := w.(http.Flusher)
-			assert.Equal(t, ok, true)
+			assert.True(t, ok)
 			flusher.Flush()
 		}))
 

+ 6 - 6
rest/handler/cryptionhandler.go

@@ -83,6 +83,12 @@ func newCryptionResponseWriter(w http.ResponseWriter) *cryptionResponseWriter {
 	}
 }
 
+func (w *cryptionResponseWriter) Flush() {
+	if flusher, ok := w.ResponseWriter.(http.Flusher); ok {
+		flusher.Flush()
+	}
+}
+
 func (w *cryptionResponseWriter) Header() http.Header {
 	return w.ResponseWriter.Header()
 }
@@ -95,12 +101,6 @@ func (w *cryptionResponseWriter) WriteHeader(statusCode int) {
 	w.ResponseWriter.WriteHeader(statusCode)
 }
 
-func (w *cryptionResponseWriter) Flush() {
-	if flusher, ok := w.ResponseWriter.(http.Flusher); ok {
-		flusher.Flush()
-	}
-}
-
 func (w *cryptionResponseWriter) flush(key []byte) {
 	if w.buf.Len() == 0 {
 		return

+ 1 - 2
rest/handler/cryptionhandler_test.go

@@ -92,9 +92,8 @@ func TestCryptionHandlerFlush(t *testing.T) {
 	req := httptest.NewRequest(http.MethodGet, "/any", nil)
 	handler := CryptionHandler(aesKey)(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 		w.Write([]byte(respText))
-
 		flusher, ok := w.(http.Flusher)
-		assert.Equal(t, ok, true)
+		assert.True(t, ok)
 		flusher.Flush()
 	}))
 	recorder := httptest.NewRecorder()

+ 4 - 6
rest/handler/loghandler.go

@@ -74,6 +74,10 @@ func newDetailLoggedResponseWriter(writer *LoggedResponseWriter, buf *bytes.Buff
 	}
 }
 
+func (w *DetailLoggedResponseWriter) Flush() {
+	w.writer.Flush()
+}
+
 func (w *DetailLoggedResponseWriter) Header() http.Header {
 	return w.writer.Header()
 }
@@ -87,12 +91,6 @@ func (w *DetailLoggedResponseWriter) WriteHeader(code int) {
 	w.writer.WriteHeader(code)
 }
 
-func (w *DetailLoggedResponseWriter) Flush() {
-	if flusher, ok := http.ResponseWriter(w.writer).(http.Flusher); ok {
-		flusher.Flush()
-	}
-}
-
 func DetailedLogHandler(next http.Handler) http.Handler {
 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 		timer := utils.NewElapsedTimer()

+ 1 - 1
rest/handler/loghandler_test.go

@@ -32,7 +32,7 @@ func TestLogHandler(t *testing.T) {
 			assert.Nil(t, err)
 
 			flusher, ok := w.(http.Flusher)
-			assert.Equal(t, ok, true)
+			assert.True(t, ok)
 			flusher.Flush()
 		}))
 

+ 6 - 6
rest/internal/security/withcoderesponsewriter.go

@@ -7,6 +7,12 @@ type WithCodeResponseWriter struct {
 	Code   int
 }
 
+func (w *WithCodeResponseWriter) Flush() {
+	if flusher, ok := w.Writer.(http.Flusher); ok {
+		flusher.Flush()
+	}
+}
+
 func (w *WithCodeResponseWriter) Header() http.Header {
 	return w.Writer.Header()
 }
@@ -19,9 +25,3 @@ func (w *WithCodeResponseWriter) WriteHeader(code int) {
 	w.Writer.WriteHeader(code)
 	w.Code = code
 }
-
-func (w *WithCodeResponseWriter) Flush() {
-	if flusher, ok := w.Writer.(http.Flusher); ok {
-		flusher.Flush()
-	}
-}

+ 1 - 1
rest/internal/security/withcoderesponsewriter_test.go

@@ -21,7 +21,7 @@ func TestWithCodeResponseWriter(t *testing.T) {
 		assert.Nil(t, err)
 
 		flusher, ok := http.ResponseWriter(cw).(http.Flusher)
-		assert.Equal(t, ok, true)
+		assert.True(t, ok)
 		flusher.Flush()
 	})