Semaphore/util/util.go

45 lines
786 B
Go
Raw Normal View History

2016-01-05 00:32:53 +01:00
package util
import (
2017-02-23 00:21:49 +01:00
"net/http"
2016-01-05 00:32:53 +01:00
"strconv"
"strings"
2017-02-23 00:21:49 +01:00
"github.com/gorilla/mux"
2016-01-05 00:32:53 +01:00
)
2017-02-22 23:17:36 +01:00
func isXHR(w http.ResponseWriter, r *http.Request) bool {
accept := r.Header.Get("Accept")
2016-01-05 00:32:53 +01:00
if strings.Contains(accept, "text/html") {
return false
}
return true
}
2017-02-22 23:17:36 +01:00
func AuthFailed(w http.ResponseWriter, r *http.Request) {
2017-02-23 00:21:49 +01:00
if isXHR(w, r) == false {
http.Redirect(w, r, "/?hai", http.StatusFound)
return
2016-01-05 00:32:53 +01:00
}
2017-02-23 00:21:49 +01:00
w.WriteHeader(http.StatusUnauthorized)
2016-01-05 00:32:53 +01:00
return
}
2017-02-22 23:17:36 +01:00
func GetIntParam(name string, w http.ResponseWriter, r *http.Request) (int, error) {
2017-02-23 00:21:49 +01:00
intParam, err := strconv.Atoi(mux.Vars(r)[name])
2016-01-05 00:32:53 +01:00
if err != nil {
2017-02-23 00:21:49 +01:00
if isXHR(w, r) == false {
http.Redirect(w, r, "/404", http.StatusFound)
2016-01-05 00:32:53 +01:00
} else {
2017-02-22 23:17:36 +01:00
w.WriteHeader(http.StatusBadRequest)
2016-01-05 00:32:53 +01:00
}
return 0, err
}
return intParam, nil
}