Mercurial > gemma
changeset 4075:cb74aa69954e
Moved TimeParser to common package.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 25 Jul 2019 15:14:44 +0200 |
parents | eb2f949ddfa2 |
children | 80bdcd137a1d 7fb75deff16b af2b20d6c921 |
files | pkg/common/time.go pkg/imports/agm.go pkg/imports/fd.go pkg/imports/wp.go pkg/misc/time.go pkg/soap/nts/service.go |
diffstat | 6 files changed, 26 insertions(+), 41 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/common/time.go Thu Jul 25 15:08:11 2019 +0200 +++ b/pkg/common/time.go Thu Jul 25 15:14:44 2019 +0200 @@ -27,8 +27,26 @@ DateFormat = "2006-01-02" ) +// TimeParser is a list of time formats. +type TimeParser []string + var utc0 = time.Unix(0, 0) +// Parse tries to parse a given string by the entries of the layout +// list one after another. The first matching time is returned. +// If no layout matches the last error is returned or time zero +// if the layout list is empty. +func (tg TimeParser) Parse(s string) (time.Time, error) { + var err error + var t time.Time + for _, layout := range tg { + if t, err = time.Parse(layout, s); err == nil { + break + } + } + return t, err +} + func InterpolateTime(t1 time.Time, m1 float64, t2 time.Time, m2 float64) func(float64) time.Time { // f(m1) = t1
--- a/pkg/imports/agm.go Thu Jul 25 15:08:11 2019 +0200 +++ b/pkg/imports/agm.go Thu Jul 25 15:14:44 2019 +0200 @@ -31,6 +31,7 @@ "strings" "time" + "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/misc" "gemma.intevation.de/gemma/pkg/models" ) @@ -103,7 +104,7 @@ return os.RemoveAll(agm.Dir) } -var guessDate = misc.TimeParser([]string{ +var guessDate = common.TimeParser([]string{ "02.01.2006 15:04", "2006-01-02T15:04:05-07:00", }).Parse
--- a/pkg/imports/fd.go Thu Jul 25 15:08:11 2019 +0200 +++ b/pkg/imports/fd.go Thu Jul 25 15:14:44 2019 +0200 @@ -21,7 +21,7 @@ "io" "time" - "gemma.intevation.de/gemma/pkg/misc" + "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/pgxutils" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -48,7 +48,7 @@ type fdTime struct{ time.Time } -var guessFDTime = misc.TimeParser([]string{ +var guessFDTime = common.TimeParser([]string{ "20060102", "2006", "",
--- a/pkg/imports/wp.go Thu Jul 25 15:08:11 2019 +0200 +++ b/pkg/imports/wp.go Thu Jul 25 15:14:44 2019 +0200 @@ -30,7 +30,7 @@ "github.com/jackc/pgx/pgtype" - "gemma.intevation.de/gemma/pkg/misc" + "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -418,7 +418,7 @@ feedback.Info( "Matching points to lines with a precision of %.4fm.", precision) - parseDate := misc.TimeParser([]string{"02.01.2006"}).Parse + parseDate := common.TimeParser([]string{"02.01.2006"}).Parse insertStmt, err := tx.PrepareContext(ctx, insertWaterwayProfileSQL) if err != nil {
--- a/pkg/misc/time.go Thu Jul 25 15:08:11 2019 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -// This is Free Software under GNU Affero General Public License v >= 3.0.Reader. -// 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) 2018 by via donau -// – Österreichische Wasserstraßen-Gesellschaft mbH -// Software engineering by Intevation GmbH -// -// Author(s): -// * Sascha L. Teichmann <sascha.teichmann@intevation.de> - -package misc - -import "time" - -// TimeParser is a list of time formats. -type TimeParser []string - -// Parse tries to parse a given string by the entries of the layout -// list one after another. The first matching time is returned. -// If no layout matches the last error is returned or time zero -// if the layout list is empty. -func (tg TimeParser) Parse(s string) (time.Time, error) { - var err error - var t time.Time - for _, layout := range tg { - if t, err = time.Parse(layout, s); err == nil { - break - } - } - return t, err -}
--- a/pkg/soap/nts/service.go Thu Jul 25 15:08:11 2019 +0200 +++ b/pkg/soap/nts/service.go Thu Jul 25 15:14:44 2019 +0200 @@ -18,11 +18,11 @@ "encoding/xml" "time" - "gemma.intevation.de/gemma/pkg/misc" + "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/soap" ) -var guessDateTime = misc.TimeParser([]string{ +var guessDateTime = common.TimeParser([]string{ "2006-01-02T15:04:05", "2006-01-02T15:04:05-07:00", }).Parse