szczanieckiej.git

commit fb0d5ffc171d35e5a193fa9cae0aa4d8d76bf45a

Author: Adam Evyčędo <git@apiote.xyz>

use predefined date formats

 traffic/convert.go | 30 +++++++++++++++---------------
 traffic/feeds.go | 8 ++++----
 traffic/structs.go | 3 ++-


diff --git a/traffic/convert.go b/traffic/convert.go
index dc2b446b5149f1dc18fc0e1a59b63f76e20823f9..45b4e5d9a9f63c7c8b082331668ec28db1b3eccb 100644
--- a/traffic/convert.go
+++ b/traffic/convert.go
@@ -405,22 +405,22 @@ 			schedule.DateRanges[0].Weekdays |= (1 << 7)
 		}
 		c.schedules[schedule.Id] = schedule
 
-		scheduleStart, err := time.ParseInLocation("2006-01-02", schedule.DateRanges[0].Start, c.Timezone)
+		scheduleStart, err := time.ParseInLocation(DateFormat, schedule.DateRanges[0].Start, c.Timezone)
 		if err != nil {
 			c.ValidFromError = append(c.ValidFromError, err)
 		}
 		if err == nil && (c.ValidFrom.IsZero() || scheduleStart.Before(c.ValidFrom)) {
 			c.ValidFrom = scheduleStart
-			c.feedInfo.ValidSince = scheduleStart.Format("20060102")
+			c.feedInfo.ValidSince = scheduleStart.Format(ValidityFormat)
 		}
 
-		scheduleEnd, err := time.ParseInLocation("2006-01-02", schedule.DateRanges[0].End, c.Timezone)
+		scheduleEnd, err := time.ParseInLocation(DateFormat, schedule.DateRanges[0].End, c.Timezone)
 		if err != nil {
 			c.ValidTillError = append(c.ValidTillError, err)
 		}
 		if err == nil && (c.ValidTill.IsZero() || scheduleEnd.After(c.ValidTill)) {
 			c.ValidTill = scheduleEnd
-			c.feedInfo.ValidTill = scheduleEnd.Format("20060102")
+			c.feedInfo.ValidTill = scheduleEnd.Format(ValidityFormat)
 		}
 	}
 	return c, nil
@@ -483,22 +483,22 @@ 			}
 
 			c.schedules[schedule.Id] = schedule
 
-			scheduleStart, err := time.ParseInLocation("2006-01-02", schedule.DateRanges[0].Start, c.Timezone)
+			scheduleStart, err := time.ParseInLocation(DateFormat, schedule.DateRanges[0].Start, c.Timezone)
 			if err != nil {
 				c.ValidFromError = append(c.ValidFromError, err)
 			}
 			if err == nil && (c.ValidFrom.IsZero() || scheduleStart.Before(c.ValidFrom)) {
 				c.ValidFrom = scheduleStart
-				c.feedInfo.ValidSince = scheduleStart.Format("20060102")
+				c.feedInfo.ValidSince = scheduleStart.Format(ValidityFormat)
 			}
 
-			scheduleEnd, err := time.ParseInLocation("2006-01-02", schedule.DateRanges[0].End, c.Timezone)
+			scheduleEnd, err := time.ParseInLocation(DateFormat, schedule.DateRanges[0].End, c.Timezone)
 			if err != nil {
 				c.ValidTillError = append(c.ValidTillError, err)
 			}
 			if err == nil && (c.ValidTill.IsZero() || scheduleEnd.After(c.ValidTill)) {
 				c.ValidTill = scheduleEnd
-				c.feedInfo.ValidTill = scheduleEnd.Format("20060102")
+				c.feedInfo.ValidTill = scheduleEnd.Format(ValidityFormat)
 			}
 		} else {
 			date := record[fields["date"]]
@@ -510,8 +510,8 @@ 			for i := 0; i < len(scheduleToEdit.DateRanges); i++ {
 				dateRange := scheduleToEdit.DateRanges[i]
 
 				if dateRange.Start == formatedDate {
-					d, _ := time.ParseInLocation("2006-01-02", dateRange.Start, c.Timezone)
-					dateRange.Start = d.AddDate(0, 0, 1).Format("2006-01-02")
+					d, _ := time.ParseInLocation(DateFormat, dateRange.Start, c.Timezone)
+					dateRange.Start = d.AddDate(0, 0, 1).Format(DateFormat)
 					if dateRange.Start <= dateRange.End {
 						newDateRanges = append(newDateRanges, dateRange)
 					}
@@ -519,17 +519,17 @@ 					continue
 				}
 
 				if dateRange.Start < formatedDate && formatedDate < dateRange.End {
-					d, _ := time.ParseInLocation("2006-01-02", formatedDate, c.Timezone)
-					range1 := DateRange{dateRange.Start, d.AddDate(0, 0, -1).Format("2006-01-02"), dateRange.Weekdays}
-					range2 := DateRange{d.AddDate(0, 0, 1).Format("2006-01-02"), dateRange.End, dateRange.Weekdays}
+					d, _ := time.ParseInLocation(DateFormat, formatedDate, c.Timezone)
+					range1 := DateRange{dateRange.Start, d.AddDate(0, 0, -1).Format(DateFormat), dateRange.Weekdays}
+					range2 := DateRange{d.AddDate(0, 0, 1).Format(DateFormat), dateRange.End, dateRange.Weekdays}
 					newDateRanges = append(newDateRanges, range1)
 					newDateRanges = append(newDateRanges, range2)
 					continue
 				}
 
 				if formatedDate == dateRange.End {
-					d, _ := time.ParseInLocation("2006-01-02", dateRange.End, c.Timezone)
-					dateRange.End = d.AddDate(0, 0, -1).Format("2006-01-02")
+					d, _ := time.ParseInLocation(DateFormat, dateRange.End, c.Timezone)
+					dateRange.End = d.AddDate(0, 0, -1).Format(DateFormat)
 					newDateRanges = append(newDateRanges, dateRange)
 					continue
 				}




diff --git a/traffic/feeds.go b/traffic/feeds.go
index 1595b7c3850146216afbc4b8223c5a19100ce2d4..1a7e3268e2e481f3f5af1538a692d7a968361a07 100644
--- a/traffic/feeds.go
+++ b/traffic/feeds.go
@@ -68,11 +68,11 @@ 		return version, fmt.Errorf("invalid version string %s, not /.*_.*/", s)
 	}
 	versionDates[0] += "000000"
 	versionDates[1] += "235900"
-	validFrom, err := time.Parse("20060102150405", versionDates[0])
+	validFrom, err := time.Parse(ValidityFormatExtended, versionDates[0])
 	if err != nil {
 		return version, fmt.Errorf("invalid first part in %s: %w", s, err)
 	}
-	validTill, err := time.Parse("20060102150405", versionDates[1])
+	validTill, err := time.Parse(ValidityFormatExtended, versionDates[1])
 	if err != nil {
 		return version, fmt.Errorf("invalid second part in %s: %w", s, err)
 	}
@@ -89,11 +89,11 @@ 		return version, fmt.Errorf("invalid version string %s, not /.*_.*/", s)
 	}
 	versionDates[0] += "000000"
 	versionDates[1] += "235900"
-	validFrom, err := time.ParseInLocation("20060102150405", versionDates[0], timezone)
+	validFrom, err := time.ParseInLocation(ValidityFormatExtended, versionDates[0], timezone)
 	if err != nil {
 		return version, fmt.Errorf("invalid first part in %s: %w", s, err)
 	}
-	validTill, err := time.ParseInLocation("20060102150405", versionDates[1], timezone)
+	validTill, err := time.ParseInLocation(ValidityFormatExtended, versionDates[1], timezone)
 	if err != nil {
 		return version, fmt.Errorf("invalid second part in %s: %w", s, err)
 	}




diff --git a/traffic/structs.go b/traffic/structs.go
index da47daf22b59f9e9932f8eaf29f366eab88938f7..0f69e07ada7242eadc9aa8807a670680726f3e30 100644
--- a/traffic/structs.go
+++ b/traffic/structs.go
@@ -246,7 +246,7 @@ 	ValidTill time.Time
 }
 
 func (v Version) String() string {
-	return v.ValidFrom.Format("20060102") + "_" + v.ValidTill.Format("20060102")
+	return v.ValidFrom.Format(ValidityFormat) + "_" + v.ValidTill.Format(ValidityFormat)
 }
 
 type GlobalVersions map[string][]Version
@@ -254,6 +254,7 @@
 var DateFormat string = "2006-01-02"
 var DateTimeFormat string = "2006-01-02T15:04:05-07:00"
 var ValidityFormat string = "20060102"
+var ValidityFormatExtended string = "20060102150405"
 
 type Traffic struct {
 	CodeIndexes     GlobalCodeIndex