-
Notifications
You must be signed in to change notification settings - Fork 4.2k
refactor(router): make error_type generic in domain_models inorder to avoid conversion of errors in storage_impl #7537
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
Merged
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
… avoid conversion of errors in storage_impl
jarnura
previously approved these changes
Mar 18, 2025
racnan
previously approved these changes
Mar 18, 2025
ShankarSinghC
previously approved these changes
Mar 19, 2025
su-shivanshmathur
previously approved these changes
Mar 20, 2025
ec26ea9
su-shivanshmathur
approved these changes
Mar 20, 2025
ShankarSinghC
approved these changes
Mar 20, 2025
jarnura
approved these changes
Mar 20, 2025
ThisIsMani
approved these changes
Mar 21, 2025
pixincreate
added a commit
that referenced
this pull request
Mar 24, 2025
…lobalpay-fixes * 'main' of github.com:juspay/hyperswitch: feat(connector): [Recurly] Add record back support for recurly [V2] (#7544) refactor(webhook): add jwt authenticated endpoint to list unique webhook events for a profile (#7325) feat(core): Add three_ds_requestor_app_url in business_profile (#7589) feat(refunds): Add refunds diesel model support in V2 API (#7503) fix(connector): [globalpay] address 5xx due to deserialization issue when `account_name` is not passed (#7540) chore: update production endpoint url for globalPay (#7588) feat(connector): [Stripebilling] add record back support for stripebilling (#7561) feat(router): Make payment_method_subtype optional in payment_attempt [V2] (#7568) fix(connector): RSync voided status mapping in AuthorizeDotNet (#7566) chore(version): 2025.03.24.0 feat(connector): [Coingate] implement refunds (#7513) feat(connectors): [Redsys] add Psync and Rsync support (#7586) refactor(connector): [BRAINTREE] Pass email in payment requests (#7591) feat(webhook): Return events list and total_count on list initial delivery attempt call (#7243) refactor(router): make error_type generic in domain_models inorder to avoid conversion of errors in storage_impl (#7537) feat(router): [V2] Return connector customer reference IDs in `CustomerResponse` (#7319) feat: core changes for extended authorization (#6766) feat(coingate): Add Payment webhooks (#7489) refactor(dynamic_routing): change insert operation to upsert for dynamic_routing_stats (#7398) feat(connectors): [Redsys] add 3D secure card payment support, including transaction capture, cancellation, and refunds (#7508)
This was referenced Apr 3, 2025
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.
Type of Change
Description
Currently we are creating the interfaces for CRUD operations for each resource in hyperswitch_domain_models which returns a result of Result<Resource, hyperswitch_domain_models::errors::StorageError> and we are implementing them in storage_impl which is expected to return hyperswitch_domain_models::errors::StorageError.
Instead we are making the result in hyperswitch_domain_models to Result<Resource, Self::Error> by which anyone implementing the trait can pass their own error type, this way we can directly return storage_impl::errors::StorageError directly. So a conversion from DomainStorageError to StorageError is not needed.
Datastorage error can be completely replaced with StorageError as both have conversion of ApplicationErrorResponse and other required errors
Additional Changes
Motivation and Context
How did you test it?
Checklist
cargo +nightly fmt --all
cargo clippy