file/helpers.go

42 lines
804 B
Go

package blog
import (
"encoding/json"
"net/http"
"strconv"
"strings"
)
func readJSON(r *http.Request, data interface{}) error {
decoder := json.NewDecoder(r.Body)
return decoder.Decode(data)
}
func writeJSON(w http.ResponseWriter, data interface{}) error {
if d, err := json.Marshal(data); err != nil {
return err
} else {
w.Header().Set("Content-Length", strconv.Itoa(len(d)))
w.Header().Set("Content-Type", "application/json")
w.Write(d)
}
return nil
}
func tokenFromRequest(r *http.Request) string {
var token string
tokencookie, e := r.Cookie("token")
if e == nil {
token = tokencookie.Value
}
if token == "" {
tmp := strings.SplitN(r.Header.Get("Authorization"), " ", 2)
if strings.ToLower(tmp[0]) != "bearer" {
return ""
}
token = tmp[1]
}
return token
}