From c190c4295d667d05b3dd094df428055bb93ce646 Mon Sep 17 00:00:00 2001 From: Peder Vatn Austad Date: Wed, 25 Dec 2024 16:48:43 +0100 Subject: [PATCH] works???? --- data/data.go | 2 +- export/csv.go | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++ main.go | 1 + 3 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 export/csv.go diff --git a/data/data.go b/data/data.go index 016c7c5..e400c21 100644 --- a/data/data.go +++ b/data/data.go @@ -127,7 +127,7 @@ type Data struct { // FetchData function to retrieve data from API func FetchData() (*Data, error) { - resp, err := http.Get("https://api.entur.io/realtime/v1/rest/et?maxSize=10000") + resp, err := http.Get("https://api.entur.io/realtime/v1/rest/et?useOriginalId=true&maxSize=100000") if err != nil { return nil, err } diff --git a/export/csv.go b/export/csv.go new file mode 100644 index 0000000..360ed63 --- /dev/null +++ b/export/csv.go @@ -0,0 +1,103 @@ +package export + +import ( + "encoding/csv" + "log" + "os" + "ti1/data" +) + +func ExportToCSV(data *data.Data) { + // Open the file for writing + file, err := os.Create("output.csv") + if err != nil { + log.Fatal(err) + } + defer file.Close() + + // Create a CSV writer + writer := csv.NewWriter(file) + defer writer.Flush() + + // Write the header row + header := []string{ + "RecordedAtTime", + "LineRef", + "DirectionRef", + "DataSource", + "DatedVehicleJourneyRef", + "VehicleMode", + "DataFrameRef", + "OriginRef", + "DestinationRef", + "OperatorRef", + "VehicleRef", + "Cancellation", + "OriginName", + "DestinationName", + "ProductCategoryRef", + "ServiceFeatureRef", + "Monitored", + "JourneyPatternRef", + "JourneyPatternName", + "PublishedLineName", + "DirectionName", + "OriginAimedDepartureTime", + "DestinationAimedArrivalTime", + "BlockRef", + "VehicleJourneyRef", + "Occupancy", + "DestinationDisplayAtOrigin", + "ExtraJourney", + "RouteRef", + "GroupOfLinesRef", + "ExternalLineRef", + "InCongestion", + "PredictionInaccurate", + "JourneyNote", + "Via", + } + writer.Write(header) + + // Write the data rows + for _, journey := range data.ServiceDelivery.EstimatedTimetableDelivery[0].EstimatedJourneyVersionFrame.EstimatedVehicleJourney { + row := []string{ + journey.RecordedAtTime, + journey.LineRef, + journey.DirectionRef, + journey.DataSource, + journey.FramedVehicleJourneyRef.DatedVehicleJourneyRef, + journey.VehicleMode, + journey.FramedVehicleJourneyRef.DataFrameRef, + journey.OriginRef, + journey.DestinationRef, + journey.OperatorRef, + journey.VehicleRef, + journey.Cancellation, + journey.OriginName, + journey.DestinationName, + journey.ProductCategoryRef, + journey.ServiceFeatureRef, + journey.Monitored, + journey.JourneyPatternRef, + journey.JourneyPatternName, + journey.PublishedLineName, + journey.DirectionName, + journey.OriginAimedDepartureTime, + journey.DestinationAimedArrivalTime, + journey.BlockRef, + journey.VehicleJourneyRef, + journey.Occupancy, + journey.DestinationDisplayAtOrigin, + journey.ExtraJourney, + journey.RouteRef, + journey.GroupOfLinesRef, + journey.ExternalLineRef, + journey.InCongestion, + journey.PredictionInaccurate, + journey.JourneyNote, + journey.Via.PlaceName, + } + writer.Write(row) + } +} diff --git a/main.go b/main.go index 98fafa3..715dccf 100644 --- a/main.go +++ b/main.go @@ -15,6 +15,7 @@ func main() { log.Fatal(err) } + //export.ExportToCSV(data) export.DBData(data) //log.Printf("Data fetched successfully: %+v", data)