From 6c01443da8416091c5fc43d6a3e414fc00350426 Mon Sep 17 00:00:00 2001 From: windyboy Date: Wed, 31 Jul 2024 17:40:56 +0800 Subject: [PATCH] refactor: Add support for parsing GS Airlines flight schedule data --- internal/parsers/schedule_parser.go | 13 +++++++++++++ internal/parsers/schedule_parser_test.go | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/internal/parsers/schedule_parser.go b/internal/parsers/schedule_parser.go index 6d5bb6c..1b42c98 100644 --- a/internal/parsers/schedule_parser.go +++ b/internal/parsers/schedule_parser.go @@ -126,6 +126,19 @@ var ( 2: Register, }, }, + { + /** + * 01 GS7635 B3193 XIY0020(16APR) CGD + */ + Airlines: []string{"GS"}, + MinLen: 4, + WaypointStart: 3, + Fields: map[int]string{ + 0: Index, + 1: FlightNumber, + 2: Register, + }, + }, } ) diff --git a/internal/parsers/schedule_parser_test.go b/internal/parsers/schedule_parser_test.go index 746b468..d69c817 100644 --- a/internal/parsers/schedule_parser_test.go +++ b/internal/parsers/schedule_parser_test.go @@ -260,4 +260,22 @@ var _ = Describe("Parse Line with PreDef", func() { }) }) + Context("GS", func() { + It("01 GS7635 B3193 XIY0020(16APR) CGD", func() { + lineText := "01 GS7635 B3193 XIY0020(16APR) CGD" + def := FindDef("GS") + Expect(def).NotTo(BeNil()) + schedule := ParseWithDef(lineText, def) + Expect(schedule).NotTo(BeNil()) + Expect(schedule.Index).To(Equal("01")) + Expect(len(schedule.FlightNumber)).To(Equal(1)) + Expect(schedule.FlightNumber[0]).To(Equal("GS7635")) + Expect(schedule.AircraftReg).To(Equal("B3193")) + Expect(len(schedule.Waypoints)).To(Equal(2)) + Expect(schedule.Waypoints[0].Airport).To(Equal("XIY")) + Expect(schedule.Waypoints[0].DepartureTime).To(Equal("0020(16APR)")) + Expect(schedule.Waypoints[1].Airport).To(Equal("CGD")) + }) + }) + })