misс(charge): Extract validation from services to the model #3781
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.
Context
For Charge we have special charge model (
graduated_percentage
) which only allowed for premium license.Currently it's validated in services duplicating the logic but also it created very bad user experience.
User on free organization can submit
{ charge_model: "graduated_percentage" }
, we'll internally reset it tonil
and return in API response that charge model is required field and should have a value (value_is_mandatory
). That error message could be related to the dozens of field and still do not communicate real error reason.Also this PR contains some of changes extracted from future PR related to the PricingUnit feature.
Description
Extracted charge model validation from services to the model
Fix rubocop warning
Refactor charge related tests to make it easier to expand them with new cases