diff --git a/cif/process.go b/cif/process.go index 694671d..a2b6548 100644 --- a/cif/process.go +++ b/cif/process.go @@ -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 +} diff --git a/cif/update.go b/cif/update.go index f8b5658..fcdb95a 100644 --- a/cif/update.go +++ b/cif/update.go @@ -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 }