Commit Graph

21 Commits

Author SHA1 Message Date
Jeremiah Russell
475917b27d feat(core): add utils module
- introduce a new utils module for housing utility functions
- improve code organization and reusability
2025-10-02 15:33:00 +01:00
Jeremiah Russell
f53ffe7d8a feat(utils): create assure_config_dir_exists function
- add utility function to create config directory if it doesn't exist
- handle home directory expansion and error conditions
2025-10-02 15:33:00 +01:00
Jeremiah Russell
af929a7acb feat(gmail): implement list functionality for Gmail API
- Add list functionality to retrieve and display email subjects from Gmail.
- Integrate with google_gmail1 crate for Gmail API interactions.
- Implement authentication using InstalledFlowAuthenticator.
- Retrieve and display email subjects using the Gmail API.
- Configure max results to limit displayed subjects.
2025-10-02 15:33:00 +01:00
Jeremiah Russell
44c9220eb1 ♻️ refactor(list): refactor list command to accept credential file
- update list command to accept credential file path
- create gmail hub in list command
2025-10-02 15:33:00 +01:00
Jeremiah Russell
dc1a52e39b feat(lib): add error module and export it
- introduce a new error module for standardized error handling
- export the Error type for external use
2025-10-02 15:33:00 +01:00
Jeremiah Russell
cd149b0d53 feat(error): introduce custom error enum for cull-gmail
- define `Error` enum to encapsulate errors from google_gmail1 and google_clis_common
- use `thiserror` crate for simplified error handling
2025-10-02 15:33:00 +01:00
Jeremiah Russell
7640485297 🐛 fix(credential): fix the config directory
- fix the config directory to `.cull-gmail` instead of `.config`
2025-10-02 15:33:00 +01:00
Jeremiah Russell
c30ee21411 ♻️ refactor(main): improve error handling and logging
- replace panics with proper error handling using `Result`
- enhance logging with error source information and initial log message
- adjust default log level to Info
2025-10-02 15:33:00 +01:00
Jeremiah Russell
5178cb6747 feat(list): implement list api to retrieve gmail messages
- add list struct to encapsulate gmail api connection
- implement run function to execute the api call and handle potential errors
2025-10-01 14:55:57 +01:00
Jeremiah Russell
3426d3e60b feat(list): integrate List struct for message listing
- integrate List struct for message listing
- move message listing logic to List struct
2025-10-01 14:55:57 +01:00
Jeremiah Russell
6f9801d5e7 feat(list): export List struct in lib.rs
- expose List struct for external use
2025-10-01 14:55:57 +01:00
Jeremiah Russell
420ca81f51 feat(cli): add list subcommand
- Implement list subcommand to display Gmail messages
- Use google_gmail1 crate to interact with Gmail API
2025-10-01 14:18:35 +01:00
Jeremiah Russell
e607e0a6d3 feat(core): add client and credential modules
- introduce client module for API interactions
- implement credential module for authentication
2025-10-01 14:18:35 +01:00
Jeremiah Russell
d13975e5de feat(list): add list module
- creates a new list module
2025-10-01 14:18:35 +01:00
Jeremiah Russell
625b9b20b0 feat(credential): implement credential loading and conversion
- add struct `Credential` for deserializing Google API credentials
- implement `load_json_file` to load credentials from a JSON file
- implement `From<Credential> for yup_oauth2::ApplicationSecret` for conversion
2025-10-01 14:18:35 +01:00
Jeremiah Russell
e3932c89ab feat(gmail): add gmail client
- implement client for gmail api
- implement auth for gmail api
2025-10-01 14:18:35 +01:00
Jeremiah Russell
af0ddab54a feat(cli): implement list subcommand
- add `list` subcommand using clap
- integrate google_gmail1 crate for Gmail API interaction
- add credential loading and authentication flow
2025-10-01 14:18:35 +01:00
Jeremiah Russell
334af3ba7f feat(cli): add command line interface with logging
- integrate clap for parsing command line arguments
- add verbosity flag for logging level control
- implement basic "list" subcommand structure
2025-09-30 11:13:17 +01:00
Jeremiah Russell
763da3145d feat(main): add initial main function with hello world
- create main.rs file
- implement basic main function with "hello world" output
2025-09-30 07:59:10 +01:00
Jeremiah Russell
b614c87408 🔧 chore(Cargo): configure project settings and lints
- add clippy lints for format args and unnecessary semicolon warnings
- allow rust dead-code lint temporarily for development phase
- specify library and binary paths for project structure
2025-09-30 07:59:10 +01:00
Jeremiah Russell
dd284526cb feat(lib): add addition function with test
- create add function to sum two u64 numbers
- include basic test to verify functionality
2025-09-29 22:28:57 +01:00