timetable-extension #1
@ -6,6 +6,8 @@ import (
 | 
			
		||||
 | 
			
		||||
	"git.fjla.uk/owlboard/go-types/pkg/upstreamApi"
 | 
			
		||||
	"git.fjla.uk/owlboard/timetable-mgr/dbAccess"
 | 
			
		||||
	"git.fjla.uk/owlboard/timetable-mgr/log"
 | 
			
		||||
	"go.uber.org/zap"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Evaluates last and new metadata and determines whether an update is required.
 | 
			
		||||
@ -14,10 +16,12 @@ import (
 | 
			
		||||
func checkMetadata(oldMeta *dbAccess.CifMetadata, newMeta *upstreamApi.JsonTimetableV1) (reason string, updateRequired bool) {
 | 
			
		||||
	// Handle nil pointer - although this should be resolved in the calling function in ideal situations
 | 
			
		||||
	if oldMeta == nil || newMeta == nil {
 | 
			
		||||
		log.Debug("oldMeta or newMeta is a nil pointer.")
 | 
			
		||||
		return "nil-pointer", false
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if !isTimestampWithinLastFiveDays(newMeta.Timestamp) {
 | 
			
		||||
		log.Debug("Downloaded CIF File not produced in last five days", zap.Time("file_timestamp", time.Unix(newMeta.Timestamp, 0)))
 | 
			
		||||
		return "downloaded-data-is-too-old", false
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -28,6 +32,7 @@ func checkMetadata(oldMeta *dbAccess.CifMetadata, newMeta *upstreamApi.JsonTimet
 | 
			
		||||
 | 
			
		||||
	// Check that the new metadata sequence is as expected.
 | 
			
		||||
	if newMeta.Metadata.Sequence == oldMeta.LastSequence+1 {
 | 
			
		||||
		log.Debug("Sequence numbers", zap.Int64("New", newMeta.Metadata.Sequence), zap.Int64("Old", oldMeta.LastSequence))
 | 
			
		||||
		return "correct-sequence", true
 | 
			
		||||
	} else {
 | 
			
		||||
		s := fmt.Sprintf("incorrect sequence, Old: %d, New: %d, Expected New: %d", oldMeta.LastSequence, newMeta.Metadata.Sequence, oldMeta.LastSequence+1)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user