init - add project files
This commit is contained in:
37
handlers/index.go
Normal file
37
handlers/index.go
Normal file
@@ -0,0 +1,37 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
. "maxwarden/ui"
|
||||
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func IndexHandler(w http.ResponseWriter, r *http.Request) {
|
||||
// serve home page if route is literally '/'
|
||||
if r.URL.Path == "/" {
|
||||
http.Redirect(w, r, "/auth/login", http.StatusFound)
|
||||
return
|
||||
}
|
||||
|
||||
// By default, any unmapped route will route to '/', so make sure
|
||||
// the URL is actually '/' or else 404
|
||||
if strings.HasSuffix(r.URL.Path, "/") {
|
||||
w.WriteHeader(http.StatusNotFound)
|
||||
|
||||
ErrorPage(http.StatusNotFound).Render(w)
|
||||
return
|
||||
}
|
||||
|
||||
rr := &httptest.ResponseRecorder{Code: http.StatusOK}
|
||||
|
||||
HttpFS.ServeHTTP(rr, r)
|
||||
|
||||
if rr.Code != http.StatusOK {
|
||||
w.WriteHeader(rr.Code)
|
||||
ErrorPage(rr.Code).Render(w)
|
||||
} else {
|
||||
HttpFS.ServeHTTP(w, r)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user