internal/server/middleware/CORSHandler.go   A
last analyzed

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
cc 5
eloc 16
dl 0
loc 28
ccs 10
cts 10
cp 1
crap 5
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A middleware.*corsHandler.ServeHTTP 0 16 4
A middleware.CORSHandler 0 2 1
1
package middleware
2
3
import "net/http"
4
5
type corsHandler struct {
6
	nextHandler http.Handler
7
}
8
9
func CORSHandler(nextHandler http.Handler) http.Handler {
10 1
	return &corsHandler{nextHandler}
11
}
12
13
func (handler *corsHandler) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
14 1
	if origin := request.Header.Get("Origin"); origin != "" {
15 1
		writer.Header().Set("Access-Control-Allow-Origin", origin)
16
17 1
		corsMethods := request.Header.Get("Access-Control-Request-Method")
18 1
		if corsMethods == "" {
19 1
			corsMethods = "GET,POST,PUT,DELETE"
20
		}
21 1
		writer.Header().Set("Access-Control-Allow-Methods", corsMethods)
22
23 1
		if corsHeaders := request.Header.Get("Access-Control-Request-Headers"); corsHeaders != "" {
24 1
			writer.Header().Set("Access-Control-Allow-Headers", corsHeaders)
25
		}
26
	}
27
28 1
	handler.nextHandler.ServeHTTP(writer, request)
29
}
30