juspay / hyperswitch

An open source payments switch written in Rust to make payments fast, reliable and affordable
https://hyperswitch.io/
Apache License 2.0
12.19k stars 1.3k forks source link

[REFACTOR]: [FISERV] Add amount conversion framework to Fiserv #5947

Open ImSagnik007 opened 3 weeks ago

ImSagnik007 commented 3 weeks ago

:memo: Feature Description

Currently, amounts are represented as i64 values throughout the application. We want to introduce a Unit struct that explicitly states the denomination. A new type, MinorUnit, has been added to standardize the flow of amounts across the application. This type will now be used by all the connector flows.

Rather than handling conversions in each connector, we will centralize the conversion logic in one place within the core of the application.

:hammer: Possible Implementation

🔖 Note: All the changes needed should be contained within hyperswitch/crates/router/src/connector/ , crates/router/src/types/api.rs , crates/router/tests/connectors/

:package: Have you spent some time checking if this feature request has been raised before?

:package: Have you read the Contributing Guidelines?

:sparkles: Are you willing to submit a PR?

Submission Process:

Refer here for Terms and conditions for the contest.

ravikiran232 commented 2 weeks ago

Hi, I'd like to work on this issue.

ImSagnik007 commented 1 week ago

Hi, I'd like to work on this issue. Hey @ravikiran232, sure! I've assigned this to you. In case you have any queries, you can ask them on this issue thread, or on our discord server.

gorakhnathy7 commented 3 days ago

Hey @ravikiran232 ,

Quick check-in on the status of this issue. If you have any questions or need assistance, feel free to reach out in the community.

ravikiran232 commented 3 days ago

Hey @gorakhnathy7, I’ve completed the changes and will submit the PR soon. Regarding the implementation, it was mentioned the changes should be in hyperswitch/crates/router/src/connector/, but Fiserv was located in hyperswitch/crates/hyperswitch_connectors/src/connectors/, so I made the required changes there.