Mercurial > gemma
diff pkg/controllers/misc.go @ 5195:d6710d29516b new-fwa
Started to move code around.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 07 May 2020 15:46:51 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkg/controllers/misc.go Thu May 07 15:46:51 2020 +0200 @@ -0,0 +1,65 @@ +// This is Free Software under GNU Affero General Public License v >= 3.0 +// without warranty, see README.md and license for details. +// +// SPDX-License-Identifier: AGPL-3.0-or-later +// License-Filename: LICENSES/AGPL-3.0.txt +// +// Copyright (C) 2019, 2020 by via donau +// – Österreichische Wasserstraßen-Gesellschaft mbH +// Software engineering by Intevation GmbH +// +// Author(s): +// * Sascha L. Teichmann <sascha.teichmann@intevation.de> + +package controllers + +import ( + "fmt" + "net/http" + "strconv" + "time" + + "gemma.intevation.de/gemma/pkg/common" +) + +func parseFormTime( + rw http.ResponseWriter, + req *http.Request, + field string, + def time.Time, +) (time.Time, bool) { + f := req.FormValue(field) + if f == "" { + return def.UTC(), true + } + v, err := common.ParseTime(f) + if err != nil { + http.Error( + rw, fmt.Sprintf("Invalid format for '%s'.", field), + http.StatusBadRequest, + ) + return time.Time{}, false + } + return v.UTC(), true +} + +func parseFormInt( + rw http.ResponseWriter, + req *http.Request, + field string, + def int, +) (int, bool) { + f := req.FormValue(field) + if f == "" { + return def, true + } + v, err := strconv.Atoi(f) + if err != nil { + http.Error( + rw, fmt.Sprintf("Invalid format for '%s'.", field), + http.StatusBadRequest, + ) + return 0, false + } + return v, true +}