helpers.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package helpers
  2. import (
  3. "errors"
  4. "log"
  5. "net/http"
  6. "os"
  7. "regexp"
  8. "strconv"
  9. "github.com/vladimirok5959/golang-server-sessions/session"
  10. )
  11. var mHtml = regexp.MustCompile(`>[\n\t\r\s]+<`)
  12. var mHtmlLeft = regexp.MustCompile(`>[\n\t\r\s]+`)
  13. var mHtmlRight = regexp.MustCompile(`[\n\t\r\s]+<`)
  14. func MinifyHtmlCode(str string) string {
  15. str = mHtml.ReplaceAllString(str, "><")
  16. str = mHtmlLeft.ReplaceAllString(str, ">")
  17. str = mHtmlRight.ReplaceAllString(str, "<")
  18. return str
  19. }
  20. // Example:
  21. //
  22. // sess := helpers.SessionStart(w, r)
  23. //
  24. // defer sess.Close()
  25. func SessionStart(w http.ResponseWriter, r *http.Request) (*session.Session, error) {
  26. sess, err := session.New(w, r, "/tmp")
  27. if err != nil && !errors.Is(err, os.ErrNotExist) {
  28. log.Printf("%s\n", err.Error())
  29. }
  30. return sess, err
  31. }
  32. func RespondAsBadRequest(w http.ResponseWriter, r *http.Request, err error) {
  33. if err != nil {
  34. log.Printf("%s\n", err.Error())
  35. w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
  36. w.Header().Set("Content-Type", "application/json")
  37. w.WriteHeader(http.StatusBadRequest)
  38. if _, e := w.Write([]byte(`{"error":"` + strconv.Quote(err.Error()) + `"}`)); e != nil {
  39. log.Printf("%s\n", e.Error())
  40. }
  41. } else {
  42. w.WriteHeader(http.StatusBadRequest)
  43. }
  44. }
  45. func RespondAsMethodNotAllowed(w http.ResponseWriter, r *http.Request) {
  46. w.WriteHeader(http.StatusMethodNotAllowed)
  47. }