12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package helpers
- import (
- "errors"
- "log"
- "net/http"
- "os"
- "regexp"
- "strconv"
- "time"
- "github.com/vladimirok5959/golang-server-sessions/session"
- )
- var mHtml = regexp.MustCompile(`>[\n\t\r\s]+<`)
- var mHtmlLeft = regexp.MustCompile(`>[\n\t\r\s]+`)
- var mHtmlRight = regexp.MustCompile(`[\n\t\r\s]+<`)
- func MinifyHtmlCode(str string) string {
- str = mHtml.ReplaceAllString(str, "><")
- str = mHtmlLeft.ReplaceAllString(str, ">")
- str = mHtmlRight.ReplaceAllString(str, "<")
- return str
- }
- // Example:
- //
- // sess := helpers.SessionStart(w, r)
- //
- // defer sess.Close()
- func SessionStart(w http.ResponseWriter, r *http.Request) (*session.Session, error) {
- sess, err := session.New(w, r, "/tmp")
- if err != nil && !errors.Is(err, os.ErrNotExist) {
- log.Printf("%s\n", err.Error())
- }
- return sess, err
- }
- func RespondAsBadRequest(w http.ResponseWriter, r *http.Request, err error) {
- if err != nil {
- log.Printf("%s\n", err.Error())
- w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusBadRequest)
- if _, e := w.Write([]byte(`{"error":"` + strconv.Quote(err.Error()) + `"}`)); e != nil {
- log.Printf("%s\n", e.Error())
- }
- } else {
- w.WriteHeader(http.StatusBadRequest)
- }
- }
- func RespondAsMethodNotAllowed(w http.ResponseWriter, r *http.Request) {
- w.WriteHeader(http.StatusMethodNotAllowed)
- }
- func SetLanguageCookie(w http.ResponseWriter, r *http.Request) error {
- var clang string
- if c, err := r.Cookie("lang"); err == nil {
- clang = c.Value
- }
- // if err := r.ParseForm(); err != nil {
- // RespondAsBadRequest(w, r, err)
- // return err
- // }
- lang := r.Form.Get("lang")
- if lang != "" && lang != clang {
- http.SetCookie(w, &http.Cookie{
- Name: "lang",
- Value: lang,
- Expires: time.Now().Add(365 * 24 * time.Hour),
- HttpOnly: true,
- })
- }
- return nil
- }
|