cuenca 2.1.19__tar.gz → 2.1.20.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/PKG-INFO +1 -1
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/__init__.py +2 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/http/client.py +1 -1
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/__init__.py +3 -0
- cuenca-2.1.20.dev0/cuenca/resources/password_resets.py +54 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/version.py +1 -1
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca.egg-info/PKG-INFO +1 -1
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca.egg-info/SOURCES.txt +2 -0
- cuenca-2.1.20.dev0/tests/resources/test_password_resets.py +29 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/LICENSE +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/README.md +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/exc.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/http/__init__.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/jwt.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/py.typed +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/accounts.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/api_keys.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/arpc.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/balance_entries.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/base.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/bill_payments.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/card_activations.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/card_transactions.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/card_validations.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/cards.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/cash_references.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/clabes.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/commissions.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/curp_validations.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/deposits.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/endpoints.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/exist_phones.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/file_batches.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/files.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/identities.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/identity_events.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/jwt_tokens.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/kyc_validations.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/limited_wallets.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/login_tokens.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/otps.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/phone_verification_associations.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/platforms.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/postal_codes.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/questionnaires.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/resources.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/savings.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/service_providers.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/sessions.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/statements.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/terms_of_service.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/transfers.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/user_credentials.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/user_events.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/user_lists_validation.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/user_logins.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/users.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/users_tos_agreements.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/verifications.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/wallet_transactions.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/webhooks.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca/resources/whatsapp_transfers.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca.egg-info/dependency_links.txt +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca.egg-info/requires.txt +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/cuenca.egg-info/top_level.txt +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/setup.cfg +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/setup.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/__init__.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/conftest.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/http/__init__.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/http/conftest.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/http/test_client.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/__init__.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_accounts.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_api_keys.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_arpc.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_balance_entries.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_bill_payments.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_card_activations.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_card_transactions.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_card_validations.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_cards.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_cash_references.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_clabes.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_commissions.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_curp_validations.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_deposits.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_endpoints.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_exist_phone.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_file_batches.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_files.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_identities.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_identity_events.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_jwt_tokens.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_kyc_validations.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_limited_wallets.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_login_tokens.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_otps.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_phone_verification_association.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_platforms.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_postal_codes.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_questionnaires.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_resources.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_savings.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_service_providers.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_sessions.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_statements.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_transfers.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_user_credentials.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_user_events.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_user_lists_validation.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_user_logins.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_users.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_users_tos_agreements.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_verifications.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_wallet_transactions.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_webhooks.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/resources/test_whatsapp_transfers.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/test_cuenca.py +0 -0
- {cuenca-2.1.19 → cuenca-2.1.20.dev0}/tests/test_jwt.py +0 -0
|
@@ -23,6 +23,7 @@ __all__ = [
|
|
|
23
23
|
'LimitedWallet',
|
|
24
24
|
'LoginToken',
|
|
25
25
|
'Otp',
|
|
26
|
+
'PasswordReset',
|
|
26
27
|
'Platform',
|
|
27
28
|
'Questionnaires',
|
|
28
29
|
'Saving',
|
|
@@ -76,6 +77,7 @@ from .resources import (
|
|
|
76
77
|
LimitedWallet,
|
|
77
78
|
LoginToken,
|
|
78
79
|
Otp,
|
|
80
|
+
PasswordReset,
|
|
79
81
|
PhoneVerificationAssociations,
|
|
80
82
|
Platform,
|
|
81
83
|
PostalCodes,
|
|
@@ -23,6 +23,7 @@ __all__ = [
|
|
|
23
23
|
'LimitedWallet',
|
|
24
24
|
'LoginToken',
|
|
25
25
|
'Otp',
|
|
26
|
+
'PasswordReset',
|
|
26
27
|
'Platform',
|
|
27
28
|
'PhoneVerificationAssociation',
|
|
28
29
|
'Questionnaires',
|
|
@@ -70,6 +71,7 @@ from .kyc_validations import KYCValidation
|
|
|
70
71
|
from .limited_wallets import LimitedWallet
|
|
71
72
|
from .login_tokens import LoginToken
|
|
72
73
|
from .otps import Otp
|
|
74
|
+
from .password_resets import PasswordReset
|
|
73
75
|
from .phone_verification_associations import PhoneVerificationAssociations
|
|
74
76
|
from .platforms import Platform
|
|
75
77
|
from .postal_codes import PostalCodes
|
|
@@ -116,6 +118,7 @@ resource_classes = [
|
|
|
116
118
|
KYCValidation,
|
|
117
119
|
LimitedWallet,
|
|
118
120
|
LoginToken,
|
|
121
|
+
PasswordReset,
|
|
119
122
|
Questionnaires,
|
|
120
123
|
Saving,
|
|
121
124
|
Session,
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import datetime as dt
|
|
2
|
+
from typing import ClassVar, Optional
|
|
3
|
+
|
|
4
|
+
from cuenca_validations.types import VerificationStatus
|
|
5
|
+
from cuenca_validations.types.requests import PasswordResetRequest
|
|
6
|
+
from pydantic import ConfigDict
|
|
7
|
+
from pydantic_extra_types.coordinate import Coordinate
|
|
8
|
+
|
|
9
|
+
from ..http import Session, session as global_session
|
|
10
|
+
from .base import Creatable, Queryable, Retrievable
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class PasswordReset(Creatable, Retrievable, Queryable):
|
|
14
|
+
_resource: ClassVar = 'password_resets'
|
|
15
|
+
|
|
16
|
+
platform_id: str
|
|
17
|
+
verification_id: str
|
|
18
|
+
flow_id: str
|
|
19
|
+
status: VerificationStatus = VerificationStatus.created
|
|
20
|
+
mati_verification_id: Optional[str] = None
|
|
21
|
+
identity_id: Optional[str] = None
|
|
22
|
+
provider_url: Optional[str] = None
|
|
23
|
+
created_at: dt.datetime
|
|
24
|
+
updated_at: Optional[dt.datetime] = None
|
|
25
|
+
deactivated_at: Optional[dt.datetime] = None
|
|
26
|
+
|
|
27
|
+
model_config = ConfigDict(
|
|
28
|
+
json_schema_extra={
|
|
29
|
+
'example': {
|
|
30
|
+
'id': 'PRNEUInh69SuKXXmK95sROwQ',
|
|
31
|
+
'platform_id': 'PT-1234567890',
|
|
32
|
+
'verification_id': 'VENEUInh69SuKXXmK95sROwQ',
|
|
33
|
+
'flow_id': '123e4567-e89b-12d3-a456-426614174000',
|
|
34
|
+
'status': 'created',
|
|
35
|
+
'mati_verification_id': 'metamap-verification-id',
|
|
36
|
+
'identity_id': 'metamap-identity-id',
|
|
37
|
+
'created_at': '2026-05-06T14:15:22Z',
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
@classmethod
|
|
43
|
+
def create(
|
|
44
|
+
cls,
|
|
45
|
+
verification_id: str,
|
|
46
|
+
location: Coordinate,
|
|
47
|
+
*,
|
|
48
|
+
session: Session = global_session,
|
|
49
|
+
) -> 'PasswordReset':
|
|
50
|
+
req = PasswordResetRequest(
|
|
51
|
+
verification_id=verification_id,
|
|
52
|
+
location=location,
|
|
53
|
+
)
|
|
54
|
+
return cls._create(session=session, **req.model_dump())
|
|
@@ -41,6 +41,7 @@ cuenca/resources/kyc_validations.py
|
|
|
41
41
|
cuenca/resources/limited_wallets.py
|
|
42
42
|
cuenca/resources/login_tokens.py
|
|
43
43
|
cuenca/resources/otps.py
|
|
44
|
+
cuenca/resources/password_resets.py
|
|
44
45
|
cuenca/resources/phone_verification_associations.py
|
|
45
46
|
cuenca/resources/platforms.py
|
|
46
47
|
cuenca/resources/postal_codes.py
|
|
@@ -95,6 +96,7 @@ tests/resources/test_kyc_validations.py
|
|
|
95
96
|
tests/resources/test_limited_wallets.py
|
|
96
97
|
tests/resources/test_login_tokens.py
|
|
97
98
|
tests/resources/test_otps.py
|
|
99
|
+
tests/resources/test_password_resets.py
|
|
98
100
|
tests/resources/test_phone_verification_association.py
|
|
99
101
|
tests/resources/test_platforms.py
|
|
100
102
|
tests/resources/test_postal_codes.py
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from pydantic_extra_types.coordinate import Coordinate, Latitude, Longitude
|
|
3
|
+
|
|
4
|
+
from cuenca import PasswordReset
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@pytest.mark.vcr
|
|
8
|
+
def test_password_resets_create() -> None:
|
|
9
|
+
password_reset = PasswordReset.create(
|
|
10
|
+
verification_id='VEze_Bh1zhROKehtBOS7EHlw',
|
|
11
|
+
location=Coordinate(
|
|
12
|
+
latitude=Latitude(19.432608),
|
|
13
|
+
longitude=Longitude(-99.133209),
|
|
14
|
+
),
|
|
15
|
+
)
|
|
16
|
+
assert password_reset.id.startswith('PR')
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@pytest.mark.vcr
|
|
20
|
+
def test_password_resets_retrieve() -> None:
|
|
21
|
+
password_reset = PasswordReset.retrieve('PRFOO')
|
|
22
|
+
assert password_reset.id
|
|
23
|
+
assert password_reset.verification_id
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@pytest.mark.vcr
|
|
27
|
+
def test_password_resets_all() -> None:
|
|
28
|
+
items = list(PasswordReset.all())
|
|
29
|
+
assert items
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|