Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
f204ed7
Add new enums for AccountUseTypes, MonthlyMovementsTypes, and Monthly…
gmorales96 Sep 1, 2025
c729024
Bump version to 2.1.16.dev2 in version.py
gmorales96 Sep 1, 2025
76374d3
Bump version to 2.1.16.dev3 in version.py
gmorales96 Sep 1, 2025
cace7b2
Add account use type and monthly movement/spending types to UserUpdat…
gmorales96 Sep 1, 2025
b94640d
Add optional fiscal_address field to UserUpdateRequest model
gmorales96 Sep 1, 2025
4959cd5
Add optional fields account_use_type, monthly_movements_type, and mon…
gmorales96 Sep 1, 2025
8f045d2
Bump version to 2.1.16 in version.py
gmorales96 Sep 1, 2025
de95029
Add new functions for profession and account use type names
gmorales96 Sep 2, 2025
50e1ecc
Add IncomeType enum and related functions for income type name retrieval
gmorales96 Sep 2, 2025
8eb7dd3
Bump version to 2.1.16.dev8 in version.py
gmorales96 Sep 2, 2025
c38a756
Update version to 2.1.16.dev9
gmorales96 Sep 2, 2025
29fee9a
Add 'otros' profession to Profession enum
gmorales96 Sep 3, 2025
228aec2
feat: add metamap session type and metadata to session request
eduardo-garcia18 Sep 4, 2025
bd7326d
feat: version for testing
eduardo-garcia18 Sep 4, 2025
5391705
feat: version for testing
eduardo-garcia18 Sep 4, 2025
b176ded
fix: change metadata to resource_id
eduardo-garcia18 Sep 5, 2025
96575db
feat: update version
eduardo-garcia18 Sep 5, 2025
b78d90b
Merge branch 'main' of github.com:cuenca-mx/cuenca-validations into f…
eduardo-garcia18 Sep 5, 2025
e29a73f
fix: fix format and lint
eduardo-garcia18 Sep 5, 2025
b59b6f3
feat: dev2
eduardo-garcia18 Sep 5, 2025
97db569
feat: new version
eduardo-garcia18 Sep 6, 2025
82e95f6
feat: version for review
eduardo-garcia18 Sep 9, 2025
ec22bbf
fix: fixes from revision, deploy of new test version
eduardo-garcia18 Sep 10, 2025
dacdac9
feat: update version
eduardo-garcia18 Sep 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions cuenca_validations/types/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,7 @@ class SessionType(str, Enum):
account_entries = 'session.account_entries'
download_file = 'session.download_file'
upload_file = 'session.upload_file'
onboarding_verification = 'session.onboarding_verification'


class WebhookObject(str, Enum):
Expand Down
11 changes: 11 additions & 0 deletions cuenca_validations/types/requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -547,13 +547,24 @@ class SessionRequest(BaseRequest):
type: SessionType
success_url: Optional[SerializableAnyUrl] = None
failure_url: Optional[SerializableAnyUrl] = None
resource_id: Optional[str] = None

@model_validator(mode='before')
@classmethod
def validate_metadata(cls, values: dict) -> dict:
type, resource_id = values['type'], values.get('resource_id')
if type == SessionType.onboarding_verification and not resource_id:
raise ValueError('Resource id expected for this session')
return values

model_config = ConfigDict(
json_schema_extra={
'example': {
'user_id': 'USWqY5cvkISJOxHyEKjAKf8w',
'type': 'session.registration',
'success_url': 'http://example_success.com',
'failure_url': 'http://example_failure.com',
'resource_id': 'some_resource_id',
}
}
)
Expand Down
2 changes: 1 addition & 1 deletion cuenca_validations/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '2.1.16'
__version__ = '2.1.17'
41 changes: 40 additions & 1 deletion tests/test_requests.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import pytest
from pydantic import ValidationError

from cuenca_validations.types.requests import UserTOSAgreementRequest
from cuenca_validations.types.enums import SessionType
from cuenca_validations.types.requests import (
SessionRequest,
UserTOSAgreementRequest,
)
from cuenca_validations.typing import DictStrAny


Expand Down Expand Up @@ -29,3 +33,38 @@ def test_file_cuenca_url_invalid() -> None:
)
with pytest.raises(ValidationError):
UserTOSAgreementRequest(**request_data)


def test_session_request_without_metadata():
request_data = {
'user_id': 'USWqY5cvkISJOxHyEKjAKf8w',
'type': 'session.curp_validation',
}
request = SessionRequest(**request_data)
assert request.type == SessionType.curp_validation
assert request.user_id == 'USWqY5cvkISJOxHyEKjAKf8w'


def test_session_request_with_resource_id():
request_data = {
'user_id': 'USWqY5cvkISJOxHyEKjAKf8w',
'type': 'session.onboarding_verification',
'resource_id': 'some_verification_id',
}
request = SessionRequest(**request_data)
assert request.type == SessionType.onboarding_verification
assert request.user_id == 'USWqY5cvkISJOxHyEKjAKf8w'
assert request.resource_id
assert request.resource_id == 'some_verification_id'


def test_metamap_session_request_without_metadata():
request_data = {
'user_id': 'USWqY5cvkISJOxHyEKjAKf8w',
'type': 'session.onboarding_verification',
}

with pytest.raises(ValidationError) as exception:
SessionRequest(**request_data)

assert 'Resource id expected for this session' in str(exception)
Loading