Skip to content
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

refactor(role): determine level of role entity #5488

Merged
merged 3 commits into from
Aug 1, 2024

Conversation

apoorvdixit88
Copy link
Contributor

Type of Change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring
  • Dependency updates
  • Documentation
  • CI/CD

Description

Add entity type to roles (predefined and customs)
This can be used to determine at which level a current entity exist, and can perform operations accordingly.

Additional Changes

  • This PR modifies the API contract
  • This PR modifies the database schema
  • This PR modifies application configuration/environment variables

Motivation and Context

Closes #5487

How did you test it?

The change is at DB level and can be tested with the upcoming application changes PRs.

Checklist

  • I formatted the code cargo +nightly fmt --all
  • I addressed lints thrown by cargo clippy
  • I reviewed the submitted code
  • I added unit tests for my changes where possible

@apoorvdixit88 apoorvdixit88 added M-database-changes Metadata: This PR involves database schema changes C-refactor Category: Refactor A-users Area: Users labels Jul 31, 2024
@apoorvdixit88 apoorvdixit88 self-assigned this Jul 31, 2024
@apoorvdixit88 apoorvdixit88 requested review from a team as code owners July 31, 2024 10:48
@apoorvdixit88 apoorvdixit88 requested a review from lsampras July 31, 2024 10:48
@@ -0,0 +1,2 @@
-- Your SQL goes here
ALTER TABLE roles ADD COLUMN entity_type VARCHAR(64);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It need not to be nullable, we can put default as merchant.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now i have put that in application side. From DB it is option and we can remove it when removing option from user_role table.

If we made Default here and somehow forgot to remove at accurate point of time while migration then all the roles will be at merchant level in V2 and we don't want that.

Copy link
Contributor

@ThisIsMani ThisIsMani Jul 31, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, we don't have to remove the default at all.

When we insert the roles we are anyways always inserting the entity_type of the role.

Putting the default value will remove the burden of running the backfill queries. Like we did for version.

@ThisIsMani
Copy link
Contributor

Schema consistency is failing for v2. Run just migrate_v2 run and commit the new schema file.

Copy link
Contributor

@ThisIsMani ThisIsMani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's better to add comments wherever there will be changes when we remove V1.

Copy link
Member

@jarnura jarnura left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can make the DB layer also enum instead of varchar.

@apoorvdixit88
Copy link
Contributor Author

We can make the DB layer also enum instead of varchar.

In user_roles table also we have kept it varchar . We can cover both in separate PR.

@likhinbopanna likhinbopanna added this pull request to the merge queue Aug 1, 2024
Merged via the queue into main with commit c036fd7 Aug 1, 2024
14 checks passed
@likhinbopanna likhinbopanna deleted the support-level-in-role branch August 1, 2024 10:23
pixincreate added a commit that referenced this pull request Aug 5, 2024
…ypress-x2

* 'main' of github.com:juspay/hyperswitch:
  refactor(cypress): pass `connector_type` externally (#5522)
  refactor(router): refactor merchant_connector update v2 flow (#5484)
  feat(router): add accept language header middleware  (#5500)
  chore(version): 2024.08.05.0
  chore(postman): update Postman collection files
  fix(pm_auth): Added mca status check in pml (#5421)
  refactor(payment_methods): List the Payment Methods for Merchant , based on the connector  type (#4909)
  fix(router): [Iatapay] make error status and error message optional (#5382)
  chore(version): 2024.08.02.0
  feat(business_profile): introduce domain models for business profile v1 and v2 APIs (#5497)
  feat(auth): Add `profile_id` in `AuthenticationData` (#5492)
  feat(core): accept business profile in core functions for payments, refund, payout and disputes (#5498)
  refactor(router): domain and diesel model changes for merchant_connector_account create v2 flow (#5462)
  fix(open_payment_links): send displaySavedPaymentMethods as false explicitly for open payment links (#5501)
  refactor(role): determine level of role entity (#5488)
pixincreate added a commit that referenced this pull request Aug 5, 2024
* 'main' of github.com:juspay/hyperswitch: (37 commits)
  fix(connector): Fixed status mapping for Plaid (#5525)
  feat(core): accept profile_id in merchant_account, connectors and customers core functions (#5505)
  refactor(auth): Pass `profile_id` from the auth to core functions (#5520)
  refactor(routing): Refactor api v2 routes for deactivating and retrieving the routing config (#5478)
  refactor(cypress): pass `connector_type` externally (#5522)
  refactor(router): refactor merchant_connector update v2 flow (#5484)
  feat(router): add accept language header middleware  (#5500)
  chore(version): 2024.08.05.0
  chore(postman): update Postman collection files
  fix(pm_auth): Added mca status check in pml (#5421)
  refactor(payment_methods): List the Payment Methods for Merchant , based on the connector  type (#4909)
  fix(router): [Iatapay] make error status and error message optional (#5382)
  chore(version): 2024.08.02.0
  feat(business_profile): introduce domain models for business profile v1 and v2 APIs (#5497)
  feat(auth): Add `profile_id` in `AuthenticationData` (#5492)
  feat(core): accept business profile in core functions for payments, refund, payout and disputes (#5498)
  refactor(router): domain and diesel model changes for merchant_connector_account create v2 flow (#5462)
  fix(open_payment_links): send displaySavedPaymentMethods as false explicitly for open payment links (#5501)
  refactor(role): determine level of role entity (#5488)
  feat(cypress): add corner cases (#5481)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-users Area: Users C-refactor Category: Refactor M-database-changes Metadata: This PR involves database schema changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[refactor]: add level support for roles
5 participants