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