Jeremiah Russell
f425c16422
✨ feat(list): add label filtering to list command
...
- allow filtering messages by labels
- add labels argument to list subcommand
- update list command to use labels argument
2025-10-03 14:40:05 +01:00
Jeremiah Russell
f1ae06bf74
✨ feat(list): add label filtering capability
...
- allow users to filter messages by label
- implement add_label method to add label IDs to the filter
- integrate label filtering into the messages_list call
2025-10-03 14:40:05 +01:00
Jeremiah Russell
2af35e7588
✨ feat(core): add Labels struct
...
- introduce `Labels` struct for managing labels
- implement methods for adding, removing, and retrieving labels
2025-10-03 14:40:05 +01:00
Jeremiah Russell
af1c95e5c3
✨ feat(labels): create labels module to manage Gmail labels
...
- Implemented `Labels` struct for managing Gmail labels.
- Added functions to retrieve and map labels.
- Added logging for label names.
2025-10-03 14:40:05 +01:00
Jerus Bot
588d45ad9b
chore: update prlog for pr
2025-10-03 11:03:17 +01:00
Jeremiah Russell
c58d8ca339
✨ feat(list): add pagination to list command
...
- add pages option to limit the number of pages to retrieve
- set default pages to 1
- modify list.run to accept the pages parameter
2025-10-03 11:03:17 +01:00
Jeremiah Russell
0799086010
✨ feat(list): add pagination support for listing messages
...
- add support for listing messages across multiple pages
- introduce `pages` argument to control the number of pages to retrieve
- implement `get_messages` to fetch a page of messages using `next_page_token`
- create `log_message_subjects` to log the subject of each message on a page
- log the estimated number of messages found
2025-10-03 11:03:17 +01:00
Jeremiah Russell
c5f3ce4c47
📝 docs(logging): add future improvement note
...
- add a to-do comment to improve the logging filter functionality
2025-10-03 11:03:17 +01:00
Jeremiah Russell
465a590a09
✨ feat(error): add error type for invalid paging mode
...
- add `InvalidPagingMode` error to handle invalid paging options
2025-10-03 11:03:17 +01:00
Jerus Bot
a9b591c9d5
chore: update prlog for pr
2025-10-02 16:46:51 +01:00
Jeremiah Russell
cffa44d4d4
🐛 fix(main): exit process with error code on failure
...
- exit the process with a non-zero error code when the `run` function returns an error
- this ensures that the program signals failure to the operating system
- only log messages from `cull_gmail`
2025-10-02 16:46:51 +01:00
Jeremiah Russell
9ac9e9ff00
✨ feat(list): add max results option to list command
...
- allow users to specify the maximum number of results to return
- add `max_results` argument to the `ListCli` struct
- set the max results on the `List` struct
2025-10-02 16:46:51 +01:00
Jeremiah Russell
e27f44c982
✨ feat(list): export DEFAULT_MAX_RESULTS constant
...
- expose DEFAULT_MAX_RESULTS for external configuration
2025-10-02 16:46:51 +01:00
Jeremiah Russell
b4a782409f
♻️ refactor(list): improve max results handling
...
- change DEFAULT_MAX_RESULTS to const &str for flexibility
- add setter and getter for max_results field
2025-10-02 16:46:51 +01:00
Jerus Bot
74ab1660ff
chore: update prlog for pr
2025-10-02 16:10:26 +01:00
Jeremiah Russell
24c928f282
♻️ refactor(gmail): remove unused client file
...
- remove client.rs due to project restructuring
- no longer needed after integrating gmail functionality elsewhere
2025-10-02 16:10:26 +01:00
Jeremiah Russell
4127de086e
♻️ refactor(lib): restructure module exports and visibility
...
- remove client module public exports
- make utils module private
2025-10-02 16:10:26 +01:00
Jerus Bot
ab3d507a1a
chore: update prlog for pr
2025-10-02 15:47:26 +01:00
Jeremiah Russell
2e6cdf5a82
🐛 fix(list): remove debug print statement
...
- remove unnecessary print statement from list module
2025-10-02 15:47:26 +01:00
Jerus Bot
ba92b4b51c
chore: update prlog for pr
2025-10-02 15:33:00 +01:00
Jeremiah Russell
5d9bee1197
✨ feat(error): enhance error handling for configuration issues
...
- add specific error variants for unset directory, home expansion failure, and directory creation failure
- improve error reporting by providing more context in error messages
2025-10-02 15:33:00 +01:00
Jeremiah Russell
2a62c6c1ba
♻️ refactor(list): improve error handling and config loading
...
- replace google_clis_common with crate::utils for config directory handling
- use map_err to propagate errors from API calls
2025-10-02 15:33:00 +01:00
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
3045f0a8f4
🔧 chore(deps): remove unused dependencies
...
- removes unused dependencies to reduce binary size and improve build times
- removes:
- ansi_term
- atty
- bitflags 1.3.2
- clap 2.34.0
- google-clis-common
- hermit-abi
- strsim 0.8.0
- textwrap
- unicode-width
- vec_map
- winapi
- winapi-i686-pc-windows-gnu
- winapi-x86_64-pc-windows-gnu
2025-10-02 15:33:00 +01:00
Jeremiah Russell
9248e8d0d1
📦 build(dependencies): remove unused google-clis-common
...
- remove google-clis-common crate from dependencies
- it is no longer needed in the project
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
45739531ac
📦 build(deps): update dependencies
...
- update clap to 4.5.48
- update clap-verbosity-flag to 3.0.4
- update env_logger to 0.11.8
- add google-clis-common 7.0.0
- update google-gmail1 to 6.0.0
- update log to 0.4.28
- update serde to 1.0.228
- update serde_json to 1.0.145
- add thiserror 2.0.17
- update tokio to 1.47.1
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
Jerus Bot
3f1a78e179
chore: update prlog for pr
2025-10-01 14:55:57 +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
Jerus Bot
2bbf1de97a
chore: update prlog for pr
2025-10-01 14:18:35 +01:00
Jeremiah Russell
8eb9ecbf12
👷 ci(circleci): update circleci config
...
- ignore RUSTSEC-2025-0066 advisory in security workflow
2025-10-01 14:18:35 +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
89fee7bf48
📦 build(dependencies): update Cargo.lock with new packages
...
- add new packages including addr2line, adler2, android_system_properties, and others
- update dependencies to their latest versions for improved functionality and security
2025-10-01 14:18:35 +01:00
Jeremiah Russell
1d9a127827
📦 build(dependencies): add new dependencies
...
- add google-gmail1 version 6.0.0
- add serde with derive features, version 1.0.228
- add serde_json version 1.0.145
- add tokio with macros and rt-multi-thread features, version 1.47.1
2025-10-01 14:18:35 +01:00
Jerus Bot
d0534aef6a
chore: update prlog for pr
2025-09-30 11:13:17 +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
7cb7fe15ab
📦 build(dependencies): update Cargo.lock with new dependencies
...
- add new package dependencies and checksums to Cargo.lock
- update existing package versions to maintain compatibility
2025-09-30 11:13:17 +01:00