Files
farmcal/cmd/server/helpers.go

50 lines
942 B
Go

package main
import (
"errors"
"net/http"
"net/url"
"strconv"
"strings"
)
func mustInt(v string, fallback int) int {
n, err := strconv.Atoi(strings.TrimSpace(v))
if err != nil {
return fallback
}
return n
}
func mustInt64(v string, fallback int64) int64 {
n, err := strconv.ParseInt(strings.TrimSpace(v), 10, 64)
if err != nil {
return fallback
}
return n
}
func parseInt64List(values []string) ([]int64, error) {
var out []int64
for _, v := range values {
id := mustInt64(v, 0)
if id <= 0 {
return nil, errors.New("invalid id")
}
out = append(out, id)
}
return out, nil
}
func placeholders(n int) string {
parts := make([]string, 0, n)
for i := 0; i < n; i++ {
parts = append(parts, "?")
}
return strings.Join(parts, ",")
}
func redirectWithMessage(w http.ResponseWriter, r *http.Request, path, key, val string) {
http.Redirect(w, r, path+"?"+key+"="+url.QueryEscape(val), http.StatusSeeOther)
}