juspay/hyperswitch

[REFACTOR]: [Payu] Remove Default Case Handling

Open

#3,238 创建于 2024年1月4日

在 GitHub 查看
 (2 评论) (0 反应) (1 负责人)Rust (4,676 fork)batch import
A-connector-integrationC-refactorhelp wanted

仓库指标

Star
 (42,690 star)
PR 合并指标
 (平均合并 6天 22小时) (30 天内合并 213 个 PR)

描述

:memo: Feature Description

  • We utilize match statements to make pivotal decisions, such as generating requests based on the payment method type and managing responses received from the connector.
  • These conditions generally go hand in hand with enum variants.
  • Default case is used because a match statement needs to be exhaustive i.e. every variant needs to be covered.
  • So, if all the explicit cases are handled then default is used to handle the rest.
  • Each connector have these match statements but many of them don’t provide reference to each variant in their default case, rather a _ is put to handle all the other cases.
  • This approach carries a risk because developers may inadvertently overlook the need for explicit handling of the new cases.

:hammer: Possible Implementation

  • Instead of relying on a default match case _, developers should handle each and every variant explicitly.
  • By doing so, if there are any changes in the future, they can readily assess the impact of their modifications simply by compiling the code.
  • In order to manage payment methods that are not implemented by Hyperswitch or yet to be implemented, the connector transformers file should make use of the NotImplemented ConnectorError enum variant.
  • By doing so, we will throw same error message for all the Connector Implementation
  • You can check this PR for further reference https://github.com/juspay/hyperswitch/pull/1955

:bookmark: Note: All the changes needed should be contained within hyperswitch/crates/router/src/connector/payu/transformer.rs

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

  • I checked and didn't find a similar issue

:package: Have you read the Contributing Guidelines?

:sparkles: Are you willing to submit a PR?

贡献者指南