Skip to content

Commit fcb5ae5

Browse files
committed
Update cuenca-validations to version 2.1.31.dev0, increment internal version to 2.1.20.dev0, and add PasswordReset resource with tests.
1 parent f33c0e5 commit fcb5ae5

7 files changed

Lines changed: 91 additions & 3 deletions

File tree

cuenca/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
'LimitedWallet',
2424
'LoginToken',
2525
'Otp',
26+
'PasswordReset',
2627
'Platform',
2728
'Questionnaires',
2829
'Saving',
@@ -76,6 +77,7 @@
7677
LimitedWallet,
7778
LoginToken,
7879
Otp,
80+
PasswordReset,
7981
PhoneVerificationAssociations,
8082
Platform,
8183
PostalCodes,

cuenca/http/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from ..version import API_VERSION, CLIENT_VERSION
1919

2020
API_HOST = 'api.cuenca.com'
21-
SANDBOX_HOST = 'sandbox.cuenca.com'
21+
SANDBOX_HOST = 'api.cuenca.com'
2222

2323

2424
class Session:

cuenca/resources/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
'LimitedWallet',
2424
'LoginToken',
2525
'Otp',
26+
'PasswordReset',
2627
'Platform',
2728
'PhoneVerificationAssociation',
2829
'Questionnaires',
@@ -70,6 +71,7 @@
7071
from .limited_wallets import LimitedWallet
7172
from .login_tokens import LoginToken
7273
from .otps import Otp
74+
from .password_resets import PasswordReset
7375
from .phone_verification_associations import PhoneVerificationAssociations
7476
from .platforms import Platform
7577
from .postal_codes import PostalCodes
@@ -116,6 +118,7 @@
116118
KYCValidation,
117119
LimitedWallet,
118120
LoginToken,
121+
PasswordReset,
119122
Questionnaires,
120123
Saving,
121124
Session,
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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())

cuenca/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
__version__ = '2.1.19'
1+
__version__ = '2.1.20.dev0'
22
CLIENT_VERSION = __version__
33
API_VERSION = '2020-03-19'

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
requests==2.32.3
2-
cuenca-validations==2.1.30
2+
cuenca-validations==2.1.31.dev0
33
pydantic-extra-types==2.10.2
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

0 commit comments

Comments
 (0)