38 lines
1019 B
Go
38 lines
1019 B
Go
package cif
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
|
|
"git.fjla.uk/owlboard/timetable-mgr/log"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
const updateHour = 7
|
|
const dailyUpdateUrl = "https://publicdatafeeds.networkrail.co.uk/ntrod/CifFileAuthenticate?type=CIF_ALL_UPDATE_DAILY&day=toc-update-"
|
|
const fullUpdateUrl = "https://publicdatafeeds.networkrail.co.uk/ntrod/CifFileAuthenticate?type=CIF_ALL_FULL_DAILY&day=toc-full"
|
|
|
|
func getDayString() string {
|
|
london, err := time.LoadLocation("Europe/London")
|
|
if err != nil {
|
|
log.Msg.Error("Unable to load time zone info", zap.Error(err))
|
|
}
|
|
|
|
timeNow := time.Now().In(london)
|
|
day := timeNow.Weekday()
|
|
|
|
dayStrings := [...]string{"sun", "mon", "tue", "wed", "thu", "fri", "sat"}
|
|
|
|
return dayStrings[day]
|
|
}
|
|
|
|
func getUpdateUrl(updateType string) (string, error) {
|
|
if updateType == "daily" {
|
|
return dailyUpdateUrl + getDayString(), nil
|
|
} else if updateType == "full" {
|
|
return fullUpdateUrl, nil
|
|
}
|
|
err := errors.New("Invalid update type provided, must be one of 'daily' or 'full'")
|
|
return "", err
|
|
}
|