diff options
Diffstat (limited to 'server/cmd/main.go')
-rw-r--r-- | server/cmd/main.go | 38 |
1 files changed, 1 insertions, 37 deletions
diff --git a/server/cmd/main.go b/server/cmd/main.go index 7b2310a..823d8d4 100644 --- a/server/cmd/main.go +++ b/server/cmd/main.go @@ -6,7 +6,6 @@ import ( "log" "net/http" "os" - "slices" "git.huntm.net/wedding/server/admin" "git.huntm.net/wedding/server/guest" @@ -38,40 +37,5 @@ func main() { mux := http.NewServeMux() mux.Handle("/api/guests/", guestHandler) mux.Handle("/api/admin/", adminHandler) - log.Fatal(http.ListenAndServe(":8080", serveHTTP(middleware.LoggingMiddleware(mux)))) -} - -func serveHTTP(handler http.Handler) http.Handler { - return http.HandlerFunc(func(responseWriter http.ResponseWriter, - request *http.Request) { - writeMethods(responseWriter, request) - writeOrigins(responseWriter, request) - writeHeaders(responseWriter) - handler.ServeHTTP(responseWriter, request) - }) -} - -func writeMethods(responseWriter http.ResponseWriter, request *http.Request) { - allowedMethods := []string{"OPTIONS", "POST", "PUT", "GET", "DELETE"} - method := request.Header.Get("Access-Control-Request-Method") - if isPreflight(request) && slices.Contains(allowedMethods, method) { - responseWriter.Header().Add("Access-Control-Allow-Methods", method) - } -} - -func writeOrigins(responseWriter http.ResponseWriter, request *http.Request) { - origin := request.Header.Get("Origin") - if origin == "http://localhost:5173" { - responseWriter.Header().Add("Access-Control-Allow-Origin", origin) - } -} - -func writeHeaders(responseWriter http.ResponseWriter) { - responseWriter.Header().Add("Access-Control-Allow-Headers", "*") -} - -func isPreflight(request *http.Request) bool { - return request.Method == "OPTIONS" && - request.Header.Get("Origin") != "" && - request.Header.Get("Access-Control-Request-Method") != "" + log.Fatal(http.ListenAndServe(":8080", middleware.Log(middleware.CORS(mux)))) } |