forked from nextcloud/mail
-
Notifications
You must be signed in to change notification settings - Fork 0
ionosmail refactor (more reviewable) #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
printminion-co
wants to merge
20
commits into
ionos-dev
Choose a base branch
from
mk/dev/ionosmail-refactor-reviewable
base: ionos-dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Learn moreAll Green is an AI agent that automatically: ✅ Addresses code review comments ✅ Fixes failing CI checks ✅ Resolves merge conflicts |
3c4a64b to
b4fb4f7
Compare
…ovider system Add provider system with IMailAccountProvider interface, ProviderRegistryService, and ExternalAccountsController. Includes ProviderCapabilities for declaring provider features, AccountProviderService for business logic, and comprehensive unit tests. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
Relocate MailAccountConfig and MailServerConfig from lib/Service/IONOS/Dto to lib/Provider/MailAccountProvider/Common/Dto to make them reusable by multiple providers. Update imports in consuming classes and move unit tests. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…d cleanup integration Add AccountProviderService to PageController to expose mail-providers-available config to frontend. Integrate ProviderRegistryService into UserDeletedListener for provider-managed account cleanup. Update unit tests. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…r for mail config availability check Refactor IonosMailConfigService.isMailConfigAvailable to accept optional user ID parameter. Add unit tests to verify behavior with explicit user IDs. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…e Mail account provider Add IonosProvider implementation with IonosProviderFacade, IonosAccountMutationService, and IonosAccountQueryService. Includes comprehensive unit tests for all components. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…ication bootstrap Register IonosProvider in Application.boot() with exception handling and logging. Add unit tests for constructor, provider registration flow, and error handling. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…mponent Add ExternalProviderTab component to replace IONOS-specific NewEmailAddressTab with provider-agnostic implementation. Update AccountForm.vue to use new component. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
Remove IonosAccountsController, IonosServiceException, and related routes. These are superseded by the provider system. Update tests and remove obsolete code. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…r namespace Relocate all IONOS services from lib/Service/IONOS to lib/Provider/MailAccountProvider/Implementations/Ionos/Service. Update namespace declarations and imports in consuming classes. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…n during account creation Implement progressive user feedback and retry mechanism in ExternalProviderTab. Retry mailbox fetch 3 times with exponential backoff and jitter (2-3s, 4-6s). Show clear status messages during each phase. Redirect after max retries with message about delayed sync. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
b4fb4f7 to
ea0536e
Compare
…provider management Add ProviderCommandBase, ProviderList, ProviderStatus, ProviderCreateAccount, and ProviderDeleteAccount commands with full parameter validation, error handling, and comprehensive unit tests. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…o.xml Register ProviderList, ProviderStatus, ProviderCreateAccount, ProviderGenerateAppPassword, and ProviderDeleteAccount in info.xml. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…ords for external accounts
Add ExternalAccountsController.generatePassword() endpoint with route
/api/providers/{providerId}/password. Add IProviderCapabilities.supportsAppPasswordGeneration
and IMailAccountProvider.generateAppPassword(). Update README with documentation.
Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…e Mail app password reset Implement IonosProvider.generateAppPassword() using IonosProviderFacade.generateAppPassword() which calls IonosAccountMutationService.resetPassword(). Add comprehensive unit tests. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…rovider app password generation Add ProviderGenerateAppPassword command with full parameter validation and comprehensive unit tests. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…ord command in info.xml Register ProviderGenerateAppPassword in info.xml. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
d21ab41 to
39cc274
Compare
…s documentation Add doc/provider-commands.md with usage, parameters, examples, workflows, troubleshooting, and testing instructions for all provider management commands. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…property to readonly in PageController Make PageController.accountProviderService readonly and add provider metadata to serialized account data. Update unit tests. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…ponse with provider metadata Updated the ExternalAccountsController to include provider metadata in the account creation response. This change improves the information returned to the client, facilitating better integration with the account provider service. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
…ider-managed accounts Add ProviderPasswordService.js for API calls, ProviderAppPassword.vue component for password reset UI with generate/copy functionality. Integrate into AccountSettings.vue for provider-managed accounts with app password support. Signed-off-by: Misha M.-Kupriyanov <[email protected]>
39cc274 to
32f8d27
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

No description provided.