From 1715591ef520358b9fb6439ad4b173b1af26c385 Mon Sep 17 00:00:00 2001 From: windyboy Date: Wed, 24 Jul 2024 16:53:30 +0800 Subject: [PATCH] refactor: Update BodyParser constructor to accept body parameter --- internal/parsers/aviation_parser.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/internal/parsers/aviation_parser.go b/internal/parsers/aviation_parser.go index 05dd25f..39ecb68 100644 --- a/internal/parsers/aviation_parser.go +++ b/internal/parsers/aviation_parser.go @@ -32,29 +32,35 @@ var ( otherPatterns = []*regexp.Regexp{navPattern, remarkPattern, selPattern, pbnPattern, eetPattern, performancePattern, reroutePattern} ) -var mu sync.Mutex - type BodyParser struct { - bodyMu sync.Mutex body string bodyPatterns map[string]config.BodyConfig + mu sync.Mutex } func NewBodyParser(body string) *BodyParser { - return &BodyParser{bodyPatterns: config.GetBodyPatterns(), body: body} + return &BodyParser{ + bodyPatterns: config.GetBodyPatterns(), + body: body, + } } func (bp *BodyParser) GetBodyPatterns() map[string]config.BodyConfig { + bp.mu.Lock() + defer bp.mu.Unlock() return bp.bodyPatterns } func (bp *BodyParser) SetBodyPatterns(patterns map[string]config.BodyConfig) { + bp.mu.Lock() + defer bp.mu.Unlock() bp.bodyPatterns = patterns } func (bp *BodyParser) Parse() (string, interface{}, error) { - bp.bodyMu.Lock() - defer bp.bodyMu.Unlock() + bp.mu.Lock() + defer bp.mu.Unlock() + bp.body = strings.TrimSpace(bp.body) category := findCategory(bp.body) if category == "" { @@ -140,13 +146,11 @@ func (bp *BodyParser) createBodyData(data map[string]string) (string, interface{ Remarks: otherData["remark"], }, nil default: - return category, nil, fmt.Errorf("cannot parse: %s", category) + return category, nil, fmt.Errorf("invalid message type: %s", category) } } func Parse(rawText string) (*domain.ParsedMessage, error) { - mu.Lock() - defer mu.Unlock() message, err := ParseHeader(rawText) if err != nil { return nil, err