go-jamming/rest/utils.go

39 lines
982 B
Go
Raw Normal View History

package rest
import (
2021-04-11 13:03:41 +02:00
"encoding/json"
"net/http"
"net/url"
)
2021-04-11 13:03:41 +02:00
// mimicing NotFound: https://golang.org/src/net/http/server.go?s=64787:64830#L2076
func BadRequest(w http.ResponseWriter) {
2021-04-11 15:42:44 +02:00
http.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest)
}
func TooManyRequests(w http.ResponseWriter) {
http.Error(w, http.StatusText(http.StatusTooManyRequests), http.StatusTooManyRequests)
}
2021-04-11 13:03:41 +02:00
func Unauthorized(w http.ResponseWriter) {
2021-04-11 15:42:44 +02:00
http.Error(w, http.StatusText(http.StatusUnauthorized), http.StatusUnauthorized)
2021-04-11 13:03:41 +02:00
}
func Json(w http.ResponseWriter, data interface{}) {
w.WriteHeader(200)
2021-04-11 13:11:41 +02:00
bytes, _ := json.MarshalIndent(data, "", " ")
2021-04-11 13:03:41 +02:00
w.Write(bytes)
}
func Accept(w http.ResponseWriter) {
w.WriteHeader(202)
2021-04-09 12:40:37 +02:00
w.Write([]byte("Thanks, bro. Will process this soon, pinky swear!"))
}
// assumes the URL is well-formed.
func BaseUrlOf(link string) *url.URL {
obj, _ := url.Parse(link)
baseUrl, _ := url.Parse(obj.Scheme + "://" + obj.Host)
return baseUrl
}