refactor: Improve CNL message parsing in BodyParser
The code changes in `aviation_parser.go` and `aviation_parser_test.go` enhance the CNL message parsing logic in the `BodyParser` module. This ensures accurate extraction of data from CNL messages, including the category, aircraft ID, departure airport, and destination airport. The improvements improve the overall functionality and accuracy of the code.
This commit is contained in:
@@ -203,10 +203,12 @@ func (bp *BodyParser) createBodyData(data map[string]string) (string, interface{
|
||||
}
|
||||
}
|
||||
|
||||
func Parse(rawText string) (*domain.ParsedMessage, error) {
|
||||
func Parse(rawText string) *domain.ParsedMessage {
|
||||
message, err := ParseHeader(rawText)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
msg := domain.NewParsedMessage()
|
||||
msg.Text = rawText
|
||||
return msg
|
||||
}
|
||||
|
||||
bodyParser := NewBodyParser(message.Body)
|
||||
@@ -215,11 +217,12 @@ func Parse(rawText string) (*domain.ParsedMessage, error) {
|
||||
message.ParsedAt = time.Now()
|
||||
|
||||
if err != nil {
|
||||
return &message, err
|
||||
message.Comments = err.Error()
|
||||
return &message
|
||||
}
|
||||
|
||||
message.Parsed = true
|
||||
message.BodyData = bodyData
|
||||
return &message, nil
|
||||
return &message
|
||||
}
|
||||
|
||||
func cleanMessage(text string) string {
|
||||
|
||||
@@ -263,9 +263,9 @@ FF ZBTJZPZX
|
||||
NNNN
|
||||
`
|
||||
It("should parse the whole message correctly", func() {
|
||||
parsedMessage, err := Parse(message)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
parsedMessage := Parse(message)
|
||||
Expect(parsedMessage).ToNot(BeNil())
|
||||
Expect(parsedMessage.Parsed).To(BeTrue())
|
||||
Expect(parsedMessage.MessageID).To(Equal("TMQ2526"))
|
||||
Expect(parsedMessage.DateTime).To(Equal("141605"))
|
||||
Expect(parsedMessage.PrimaryAddress).To(Equal("ZBTJZPZX"))
|
||||
@@ -314,9 +314,9 @@ GG ZBTJZPZX
|
||||
NNNN
|
||||
`
|
||||
It("should parse the whole message correctly", func() {
|
||||
parsedMessage, err := Parse(message)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
parsedMessage := Parse(message)
|
||||
Expect(parsedMessage).ToNot(BeNil())
|
||||
Expect(parsedMessage.Parsed).To(BeTrue())
|
||||
Expect(parsedMessage.MessageID).To(Equal("TMQ2617"))
|
||||
Expect(parsedMessage.DateTime).To(Equal("142150"))
|
||||
Expect(parsedMessage.PrimaryAddress).To(Equal("ZBTJZPZX"))
|
||||
|
||||
Reference in New Issue
Block a user