timetable-extension #1
@ -1,8 +1,11 @@
|
||||
package cif
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"git.fjla.uk/owlboard/go-types/pkg/database"
|
||||
"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"
|
||||
)
|
||||
@ -51,6 +54,13 @@ func doDeletions(deletions []*upstreamApi.JsonScheduleV1) error {
|
||||
|
||||
deleteQueries = append(deleteQueries, query)
|
||||
}
|
||||
|
||||
err := dbAccess.DeleteCifEntries(deleteQueries)
|
||||
if err != nil {
|
||||
log.Msg.Error("Error deleting documents", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -61,8 +71,27 @@ func doCreations(creations []*upstreamApi.JsonScheduleV1) error {
|
||||
createDocuments := make([]database.Service, 0)
|
||||
for _, item := range creations {
|
||||
document := database.Service{}
|
||||
|
||||
// Do type conversion here
|
||||
createDocuments = append(createDocuments, document)
|
||||
}
|
||||
|
||||
err := dbAccess.CreateCifEntries(createDocuments)
|
||||
if err != nil {
|
||||
log.Msg.Error("Error creating documents", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Accepts the JsonTimetableV1 struct which contains CIF File metadata and produces a DB Ready struct.
|
||||
func generateMetadata(header *upstreamApi.JsonTimetableV1) *dbAccess.CifMetadata {
|
||||
newMetadata := dbAccess.CifMetadata{
|
||||
Doctype: dbAccess.Doctype,
|
||||
LastTimestamp: header.Timestamp,
|
||||
LastUpdate: time.Now().In(londonTimezone),
|
||||
LastSequence: header.Metadata.Sequence,
|
||||
}
|
||||
|
||||
return &newMetadata
|
||||
}
|
||||
|
@ -68,10 +68,13 @@ func runCifUpdateDownload(cfg *helpers.Configuration, metadata *dbAccess.CifMeta
|
||||
|
||||
// Check metadata sequence - Handle a metadata sequence error. Probably by deleting metadata so next update triggers full download
|
||||
//// I need to check what the sequence looks like in a full download first.
|
||||
//// Regarding metadata, I will need to replace 'metadata *dbAccess.CifMetadata' with the new metadata to ensure it is checked correctly in each iteration.
|
||||
// Process CIF file
|
||||
// Generate & Write metadata
|
||||
// Update metadata variable
|
||||
}
|
||||
|
||||
// Write metadata
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user