From 4bd2adda51df1298e54ceba853bea9acec6480c1 Mon Sep 17 00:00:00 2001 From: windyboy Date: Wed, 31 Jul 2024 17:27:14 +0800 Subject: [PATCH] refactor: Add support for parsing JD Airlines flight schedule data --- internal/parsers/schedule_parser.go | 5 +++++ internal/parsers/schedule_parser_test.go | 22 +++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/internal/parsers/schedule_parser.go b/internal/parsers/schedule_parser.go index 45b56ba..6d5bb6c 100644 --- a/internal/parsers/schedule_parser.go +++ b/internal/parsers/schedule_parser.go @@ -15,6 +15,7 @@ type LineParser struct { } const ( + CANCELLED = "CNL" AirportCode = "airport" Date = "date" Task = "task" @@ -173,6 +174,10 @@ func ParseWithDef(line string, parserDef *LineParser) *domain.ScheduleLine { var flightSchedule = &domain.ScheduleLine{ Reference: line, } + if strings.Contains(line, CANCELLED) { + flightSchedule.Comments = "Cancelled" + return flightSchedule + } // var result map[string]string if parserDef == nil { log.Warnf("No definition found: %s", line) diff --git a/internal/parsers/schedule_parser_test.go b/internal/parsers/schedule_parser_test.go index dbc5048..746b468 100644 --- a/internal/parsers/schedule_parser_test.go +++ b/internal/parsers/schedule_parser_test.go @@ -132,25 +132,33 @@ var _ = Describe("Schedule Parser", func() { }) -var _ = Describe("FindDef", func() { +var _ = Describe("Parser Definition", func() { - Context("find def for MF", func() { - It("should return a valid def", func() { + Context("MF", func() { + It("valid def", func() { def := FindDef("MF") Expect(def).NotTo(BeNil()) Expect(def.Airlines).To(ContainElement("MF")) }) }) - Context("find def for FM", func() { - It("should return a valid def", func() { + Context("FM", func() { + It("valid def", func() { def := FindDef("FM") Expect(def).NotTo(BeNil()) Expect(def.Airlines).To(ContainElement("FM")) }) }) - Context("find def for CK", func() { - It("should return a valid def", func() { + Context("8X", func() { + It("valid def", func() { + def := FindDef("8X") + Expect(def).NotTo(BeNil()) + Expect(def.Airlines).To(ContainElement("8X")) + }) + }) + + Context("CK", func() { + It("nil", func() { def := FindDef("CK") Expect(def).To(BeNil()) })