Commit Graph
100 Commits
Author SHA1 Message Date
windyboy 02e54a2670 Refactor application initialization to load configuration and enhance message processing. Introduce effective subscription topic handling and improve error management in NATS consumer. Update tests for publisher error handling and add new dependency injection method for app initialization. 2025-11-14 22:43:04 +08:00
windyboy 9cce4610b6 Enhance NATS configuration and error handling. Introduce stream limits and consumer rules in configuration files. Refactor message processing to handle permanent errors. Update README and development configuration to reflect changes. Add tests for new error handling mechanisms. 2025-11-14 21:42:04 +08:00
windyboy a574cfcf27 Upgrade Go version to 1.23.0 and update dependencies. Introduce new application structure with Clean Architecture principles, including message processing, NATS integration, and PostgreSQL repository. Add configuration management using Koanf and structured logging with Zap. Remove legacy GraphQL integration and related files. Implement dependency injection with Google Wire. 2025-11-14 08:42:26 +08:00
windyboy bafbbf470c Refactor uuid to id in message handling & processing. (#6) 2024-08-14 14:29:24 +08:00
windyboy 8538153cfe Merge pull request #5 from windyboy/introduce-interfaces
introduce-interfaces
2024-08-14 11:49:43 +08:00
windyboy da1d713946 🚀 Integrate Hasura service into NATS message processing. 2024-08-14 11:48:39 +08:00
windyboy a5fa4955f4 Add configuration to interfaces. 2024-08-14 11:48:18 +08:00
windyboy 6b44c2d7a0 refactor subscribe (#4)
*  Refactor nats subscribe method and remove unused argument.

*  Add logging for message insertion 📝
2024-08-14 09:40:47 +08:00
windyboy 5470118461 Update github.com/urfave/cli/v2 to v2.27.4. (#3) 2024-08-12 17:48:05 +08:00
windyboy 8a4c46aa34 update handler (#2)
* 🔧 Remove commented-out regex patterns and initialization in config.

*  Add NATS message publisher with configuration 📩🚀

*  Add new PlainTextMarshaler and refactor handler in nats package.
2024-08-12 17:47:34 +08:00
windyboy fd58395db3 🔧 Remove commented-out regex patterns and initialization in config. (#1) 2024-08-12 14:23:31 +08:00
windyboy 4ff44804f2 refactor: Remove coverage files from gitignore 2024-08-12 10:12:49 +08:00
windyboy e468e1f89c refactor: Add ToString method to ParsedMessage struct 2024-08-09 11:13:25 +08:00
windyboy 85ce23cb16 refactor: Update 'Content' field in HasuraRepository.CreateNew method 2024-08-09 11:07:07 +08:00
windyboy 091a054eab refactor: Rename 'text' field to 'content' in telegrams table 2024-08-09 10:29:17 +08:00
windyboy 9768bad108 chore: Add task for generating test coverage report 2024-08-07 20:37:34 +08:00
windyboy 68387e4a90 refactor: Add task for generating test coverage report 2024-08-07 20:05:43 +08:00
windyboy 622bd8e11b refactor: Remove commented-out code in schedule_parser.go 2024-08-07 20:01:14 +08:00
windyboy 8a1de2db43 refactor: Add coverage.html to .gitignore 2024-08-07 20:01:06 +08:00
windyboy 3a1f533d63 hasura 2024-08-07 17:16:07 +08:00
windyboy 15ce2c033a refactor: Update aviation_parser.go to remove unused code and update constants 2024-08-07 17:05:42 +08:00
windyboy e1cc851cc3 refactor: Rename 'body_and_footer' column to 'text' in telegrams table 2024-08-07 14:10:15 +08:00
windyboy dd10023199 refactor: Add installation of gq tool to Taskfile 2024-08-07 14:10:03 +08:00
windyboy f340c66b19 refactor: Update aviation_parser.go to remove unused code and update constants 2024-08-07 11:10:18 +08:00
windyboy 55a286f521 refactor: Improve error handling in NATS message handling 2024-08-07 11:10:08 +08:00
windyboy e4fa138089 refactor: Update constants and remove unused code in aviation_parser.go and constants.go 2024-08-07 10:47:15 +08:00
windyboy 5515f353b4 refactor: Refactor aviation_parser.go to improve code readability and maintainability 2024-08-06 22:46:01 +08:00
windyboy bbaea62788 refactor: Update parseWaypoints function to return error in schedule_parser_test.go 2024-08-06 22:28:46 +08:00
windyboy afafd51bad refactor: Remove unused code and update regular expressions in schedule_def.go 2024-08-06 13:12:19 +08:00
windyboy 1e37e21331 chore: Update go.mod dependencies to latest versions 2024-08-06 12:44:43 +08:00
windyboy a57e924501 refactor: Update aviation_parser.go and pattern.go to use BodyConfig struct instead of config.BodyConfig 2024-08-06 12:44:32 +08:00
windyboy bef663ca3d refactor: Update Civial Aviation Authority Telegram message processor usage in main.go and add NATS server connection logging 2024-08-05 15:58:46 +08:00
windyboy 3c37410737 refactor: Update Nats handler and Hasura repository initialization 2024-08-05 11:42:33 +08:00
windyboy 1a858cf19c refactor: Remove redundant code and improve configuration handling in main.go 2024-08-05 11:23:22 +08:00
windyboy 3c917c93af refactor: Update main.go to process Civial Aviation Authority Telegram messages and add CLI flag for Nats server address and topic 2024-08-05 10:58:20 +08:00
windyboy c54bcbc0a8 refactor: Update Taskfile.yml to use lowercase variable names for consistency 2024-08-05 10:11:33 +08:00
windyboy 65500a8d45 refactor: Add task to install ginkgo for testing 2024-08-02 19:45:49 +08:00
windyboy 6a689b073f deps 2024-08-02 16:43:26 +08:00
windyboy 70e33742fa mod tidy 2024-08-02 16:39:34 +08:00
windyboy b9e9c2b8a7 refactor: Remove commented code for extracting flight numbers 2024-08-02 16:04:11 +08:00
windyboy 2690f571ad refactor: Add support for parsing HO, NS, and EU Airlines flight schedule data 2024-08-02 14:58:44 +08:00
windyboy aff70c7373 refactor: Update flight schedule parser to handle multiple flight numbers 2024-08-02 14:37:12 +08:00
windyboy 8798727a0d refactor: Update FlightNumberPattern regex to handle multiple flight numbers 2024-08-02 14:21:12 +08:00
windyboy 144f3a9d9a refactor: Add support for parsing 翔鹏航空 (8L) flight schedule data 2024-08-02 12:39:57 +08:00
windyboy a37596b40b refactor: Add support for parsing ZH Airlines flight schedule data 2024-08-02 12:37:12 +08:00
windyboy 7b1a072f32 refactor: Add support for parsing 9C Airlines flight schedule data 2024-08-02 11:47:07 +08:00
windyboy 81cf4584ac remove schedule parser definition to another file 2024-08-02 11:40:46 +08:00
windyboy 158a03d4c3 refactor: Improve parsing of CK Airlines (CK) flight schedule data 2024-08-02 11:36:21 +08:00
windyboy 2962dee69d 3U schedule 2024-08-02 11:24:09 +08:00
windyboy a734f5f25c refactor: Improve parsing of flight schedule data 2024-08-02 11:15:23 +08:00
windyboy 7222be4b59 refactor: Add test for parsing date in schedule_parser_test.go 2024-07-31 21:46:47 +08:00
windyboy 20872710ce refactor: Improve parsing of flight schedule data 2024-07-31 17:48:36 +08:00
windyboy 54dcefb08a refactor: Improve parsing of flight schedule data
The code changes in `schedule_parser_test.go` enhance the parsing logic for flight schedule data. This improves the accuracy and functionality of the code when extracting information such as index, task, date, flight number, aircraft registration, waypoints, and departure/arrival times from the input line. The changes ensure more reliable and consistent parsing of flight schedule data.
2024-07-31 17:46:18 +08:00
windyboy 6c01443da8 refactor: Add support for parsing GS Airlines flight schedule data 2024-07-31 17:40:56 +08:00
windyboy 4bd2adda51 refactor: Add support for parsing JD Airlines flight schedule data 2024-07-31 17:27:14 +08:00
windyboy 2729e33f59 refactor: Add support for parsing JD Airlines flight schedule data 2024-07-31 17:09:41 +08:00
windyboy 48d1ad60dc refactor: Improve parsing of Hainan Airlines (HU) flight schedule data 2024-07-31 16:59:20 +08:00
windyboy b37667873f refactor: Improve parsing of flight schedule data
The code changes in `schedule_parser.go` enhance the parsing logic for flight schedule data. This improves the accuracy and functionality of the code when extracting information such as index, task, date, flight number, and aircraft registration from the input line. The changes ensure more reliable and consistent parsing of flight schedule data.
2024-07-31 16:49:36 +08:00
windyboy 2a1dc1eebe refactor: Update parsing of flight schedule data for improved accuracy and functionality 2024-07-31 16:04:52 +08:00
windyboy 34ea30b594 refactor: Remove genqlient.yaml configuration file
The code changes delete the genqlient.yaml configuration file, as it is no longer needed. This simplifies the project structure and removes unnecessary files.
2024-07-31 12:34:45 +08:00
windyboy 0ea7ce22c9 refactor: Update parsing of flight schedule data for improved accuracy and functionality 2024-07-31 12:25:21 +08:00
windyboy 9982b1408d refactor: Update parsing of flight schedule data for improved accuracy and functionality 2024-07-31 11:05:30 +08:00
windyboy f74d61981a refactor: Upgrade go dependencies and tidy go.mod file 2024-07-31 11:05:23 +08:00
windyboy f827941a1b refactor: Update parsing of flight schedule data for improved accuracy and functionality 2024-07-30 10:56:05 +08:00
windyboy 766925f7f9 refactor: Update nats subscription handling
The code changes in `sub.go` update the handling of NATS subscriptions. The `Subscribe` function now takes in a `config` parameter, allowing for more flexibility in configuring the subscription. Additionally, the `Subscribe` function now uses the `handler` and `marshaler` parameters to handle incoming messages and marshal/unmarshal data, respectively. These changes improve the modularity and extensibility of the code when working with NATS subscriptions.
2024-07-30 10:25:59 +08:00
windyboy ebcca5c1ec refactor: Improve parsing of flight schedule data
The code changes in `schedule_parser.go` enhance the parsing logic for flight schedule data. This improves the accuracy and functionality of the code when extracting information such as index, task, date, flight number, and aircraft registration from the input line. The changes ensure more reliable and consistent parsing of flight schedule data.
2024-07-29 23:46:21 +08:00
windyboy d053ff8c38 refactor: Update go.sum to include go.sum file in version control
The code changes in `.gitignore` modify the exclusion rule for `go.sum` file, removing the `#` symbol to include it in version control. This change ensures that the `go.sum` file is tracked and synchronized across different environments, improving dependency management and ensuring consistent builds.
2024-07-29 23:41:06 +08:00
windyboy 91d6957eba refactor: Update CNL pattern in config.go
The code changes in `config.go` update the CNL pattern to correctly match CNL messages. This update ensures accurate extraction of data from CNL messages and improves the overall functionality of the code.
2024-07-29 23:40:51 +08:00
windyboy 14f3dc7321 update arrival pattern 2024-07-29 23:33:08 +08:00
windyboy 8593f6ce9d refactor: Add FlightSchedule.Index field and update parsers
The code changes introduce a new `Index` field in the `FlightSchedule` struct and update the parsers in `aviation_parser.go` and `schedule_parser.go` to handle this field. This addition allows for the extraction and parsing of the `Index` value from flight schedule messages. The changes improve the functionality and accuracy of the code when working with flight schedules.
2024-07-29 17:54:52 +08:00
windyboy bb4faf4d13 ```text
refactor: Add schedule_parser.go and schedule_parser_test.go

The code changes introduce a new `schedule_parser.go` file and its corresponding test file `schedule_parser_test.go`. These files contain the implementation and tests for the `FindWaypoints` function, which extracts waypoints from a given message. This addition enhances the functionality of the code by providing a way to parse and retrieve specific information from messages.
2024-07-29 15:40:30 +08:00
windyboy 2a512d419a refactor: Update CNL pattern in config.go 2024-07-29 15:40:20 +08:00
windyboy 5b6b4f5dba refactor: Add FlightSchedule struct and validation logic
The code changes in `pln.go` introduce a new `FlightSchedule` struct and validation logic. This struct represents a flight schedule and includes various fields such as date, category, flight number, aircraft registration, passenger configuration, ILS category, departure airport, departure time, schedule info, arrival time, arrival airport, comments, and reference. The `Validate` method ensures that the required fields are populated and returns an error if any field is missing. This addition improves the overall functionality and data integrity of the code.
2024-07-29 15:40:10 +08:00
windyboy e3aa6b9600 refactor: Update CNL pattern in config.go 2024-07-29 15:39:59 +08:00
windyboy faed181940 refactor: Update go.mod dependencies
Update go.mod dependencies to the latest stable versions. This includes updating github.com/nats-io/nats.go to v1.36.0, github.com/onsi/ginkgo/v2 to v2.19.1, github.com/onsi/gomega to v1.34.0, go.uber.org/zap to v1.27.0, and golang.org/x/oauth2 to v0.21.0. Also update github.com/go-logr/logr to v1.4.2 and github.com/klauspost/compress to v1.17.9. These updates ensure that the project is using the most recent dependencies, improving stability and compatibility.
2024-07-29 14:20:20 +08:00
windyboy dd75f0f705 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.
2024-07-26 12:49:01 +08:00
windyboy bfb7f79b16 refactor: Update CNL pattern in config.go
The code changes in `config.go` update the CNL pattern to correctly match CNL messages. The previous pattern did not properly capture the arrival location, resulting in incorrect parsing of CNL messages. This update ensures accurate extraction of data from CNL messages and improves the overall functionality of the code.
2024-07-26 09:59:38 +08:00
windyboy 768c9a4476 remove report 2024-07-24 19:14:14 +08:00
windyboy 5d62b8dc77 refactor: Add DLA message parsing logic to BodyParser 2024-07-24 17:38:39 +08:00
windyboy e58fa3bb36 refactor: Add CNL message parsing logic to BodyParser
The code changes in `aviation_parser.go` and `aviation_parser_test.go` add CNL message parsing logic to the `BodyParser` module. This allows for the correct extraction and parsing of CNL messages, including the category, aircraft ID, departure airport, and destination airport. This enhancement improves the overall functionality and accuracy of the code.
2024-07-24 17:15:35 +08:00
windyboy 1715591ef5 refactor: Update BodyParser constructor to accept body parameter 2024-07-24 16:53:30 +08:00
windyboy 6a45244694 refactor: Update BodyParser constructor to accept body parameter 2024-07-24 16:38:22 +08:00
windyboy ee646d5a23 refactor: Update BodyParser constructor to accept body parameter
The code changes in `aviation_parser.go` modify the `NewBodyParser` constructor to accept a `body` parameter. This allows for the initialization of `BodyParser` instances with a specific body value, improving flexibility and testability. The `body` parameter is now stored in the `body` field of the `BodyParser` struct. This change enhances the overall functionality and maintainability of the code.
2024-07-24 16:03:45 +08:00
windyboy ce4de56681 fpl pattern document 2024-07-24 15:29:48 +08:00
windyboy b2857003d9 refactor: Update ARR body parsing logic
The code changes in `pattern_test.go` update the ARR body parsing logic. The message body parsing now correctly handles ARR bodies with a different pattern format. This ensures accurate extraction of data based on patterns and improves the overall functionality of the code.

group of more  than one alternative in fpl
2024-07-24 15:20:00 +08:00
windyboy 9b6047c0a3 refactor: Update logger initialization and configuration
This commit updates the `log.go` file to improve the initialization and configuration of the logger. The code changes remove unnecessary comments and unused variables, ensuring cleaner and more efficient code. Additionally, the `load` function is modified to properly handle errors when loading the logger configuration file. These improvements enhance the overall functionality and maintainability of the logger module.
2024-07-24 14:43:22 +08:00
windyboy 15f15ec146 refactor: Rename clean function to cleanMessage for clarity and consistency
The code changes in `aviation_parser.go` and `aviation_parser_test.go` rename the `clean` function to `cleanMessage` to improve clarity and consistency in function naming. This change ensures that the function's purpose is more accurately reflected in its name, making it easier for developers to understand and maintain the code.
2024-07-24 14:38:32 +08:00
windyboy 5a61d52fc4 refactor: Improve ARR body parsing logic 2024-07-24 14:21:02 +08:00
windyboy 738ce16f34 refactor: Update ARR body parsing logic
The code changes in `pattern_test.go` update the ARR body parsing logic. The message body parsing now correctly handles ARR bodies with a different pattern format. This ensures accurate extraction of data based on patterns and improves the overall functionality of the code.
2024-07-24 11:07:04 +08:00
windyboy 496dc2b9d0 refactor: Update go.mod dependencies
This commit updates the go.mod file to include the latest versions of the following dependencies:
- github.com/Khan/genqlient v0.7.0
- github.com/google/uuid v1.6.0

These updates ensure that the project is using the most recent and stable versions of the dependencies, improving the overall reliability and functionality of the code.
2024-07-24 10:33:12 +08:00
windyboy d5dc935d19 refactor: Improve ARR body parsing logic 2024-07-23 19:36:11 +08:00
windyboy e5492c20ca refactor: Update ARR body parsing logic 2024-07-23 19:12:08 +08:00
windyboy 6d1364df7e refactor: Update ARR body parsing logic
The code changes in `pattern_test.go` update the ARR body parsing logic. The message body parsing now correctly handles ARR bodies with a different pattern format. This ensures accurate extraction of data based on patterns and improves the overall functionality of the code.
2024-07-23 16:45:03 +08:00
windyboy 12a9da1ca1 refactor: Update ARR body parsing logic 2024-07-23 12:34:14 +08:00
windyboy 3b9b64ec9e refactor: Update ARR body parsing logic 2024-07-23 12:01:58 +08:00
windyboy 77a7c7eae0 refactor: Update ARR body parsing logic 2024-07-23 11:29:12 +08:00
windyboy 3202521f7b refactor: Update NATS subscription logic and configuration 2024-07-22 18:00:51 +08:00
windyboy 53f03bbc0a refactor: Update config.dev.toml and sub.go for Hasura integration
The code changes in config.dev.toml and sub.go update the configuration and message handling for integrating with Hasura. The config.dev.toml file now includes a new section for Hasura configuration, specifying the endpoint and secret. In sub.go, the UUID field is set to the UUID of the received message, ensuring proper tracking of parsed messages. This refactor enables seamless integration with Hasura and improves the functionality of the code.
2024-07-22 16:23:15 +08:00
windyboy 3115162454 refactor: Update ARR body parsing logic 2024-07-22 14:43:35 +08:00
windyboy 25bb5aa404 refactor: Update FPL structure fields in fpl.go
The code changes in fpl.go update the Flight Plan (FPL) structure fields. The FlightNumber, AircraftID, SSRModeAndCode, CruisingSpeedAndLevel, DepartureAirport, DepartureTime, Route, DestinationAndTotalTime, AlternateAirport, EstimatedArrivalTime, SELCALCode, and EstimatedElapsedTime fields are modified to reflect the new values. This refactor ensures accurate representation of the FPL data and improves the overall functionality of the code.
2024-07-22 12:42:42 +08:00