cuenca-validations 2.1.39.dev0__tar.gz → 2.1.39.dev2__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_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/PKG-INFO +1 -1
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/__init__.py +6 -2
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/enums.py +6 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/queries.py +5 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/requests.py +20 -19
- cuenca_validations-2.1.39.dev2/cuenca_validations/version.py +1 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations.egg-info/PKG-INFO +1 -1
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/tests/test_requests.py +7 -22
- cuenca_validations-2.1.39.dev0/cuenca_validations/version.py +0 -1
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/LICENSE +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/README.md +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/__init__.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/card_bins.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/errors.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/py.typed +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/card.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/files.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/general.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/helpers.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/identities.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/morals.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/typing.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/validators.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations.egg-info/SOURCES.txt +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations.egg-info/dependency_links.txt +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations.egg-info/requires.txt +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations.egg-info/top_level.txt +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/setup.cfg +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/setup.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/tests/__init__.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/tests/test_card.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/tests/test_errors.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/tests/test_helpers.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/tests/test_statement.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/tests/test_types.py +0 -0
- {cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/tests/test_validators.py +0 -0
|
@@ -2,6 +2,9 @@ __all__ = [
|
|
|
2
2
|
'AccountUseType',
|
|
3
3
|
'AccountQuery',
|
|
4
4
|
'Address',
|
|
5
|
+
'AgentQuery',
|
|
6
|
+
'AgentRequest',
|
|
7
|
+
'AgentStatus',
|
|
5
8
|
'ApiKeyQuery',
|
|
6
9
|
'ApiKeyUpdateRequest',
|
|
7
10
|
'AuthorizerTransaction',
|
|
@@ -27,7 +30,6 @@ __all__ = [
|
|
|
27
30
|
'CardTransactionType',
|
|
28
31
|
'CardType',
|
|
29
32
|
'Country',
|
|
30
|
-
'CodiNotificationRequest',
|
|
31
33
|
'Curp',
|
|
32
34
|
'CurpValidationRequest',
|
|
33
35
|
'CommissionType',
|
|
@@ -128,6 +130,7 @@ __all__ = [
|
|
|
128
130
|
from .card import StrictPaymentCardNumber
|
|
129
131
|
from .enums import (
|
|
130
132
|
AccountUseType,
|
|
133
|
+
AgentStatus,
|
|
131
134
|
AuthorizerTransaction,
|
|
132
135
|
BankAccountStatus,
|
|
133
136
|
CardErrorType,
|
|
@@ -201,6 +204,7 @@ from .identities import (
|
|
|
201
204
|
)
|
|
202
205
|
from .queries import (
|
|
203
206
|
AccountQuery,
|
|
207
|
+
AgentQuery,
|
|
204
208
|
ApiKeyQuery,
|
|
205
209
|
BalanceEntryQuery,
|
|
206
210
|
BankAccountValidationQuery,
|
|
@@ -224,10 +228,10 @@ from .queries import (
|
|
|
224
228
|
WalletTransactionQuery,
|
|
225
229
|
)
|
|
226
230
|
from .requests import (
|
|
231
|
+
AgentRequest,
|
|
227
232
|
ApiKeyUpdateRequest,
|
|
228
233
|
BankAccountValidationRequest,
|
|
229
234
|
BeneficiaryRequest,
|
|
230
|
-
CodiNotificationRequest,
|
|
231
235
|
CurpValidationRequest,
|
|
232
236
|
EndpointRequest,
|
|
233
237
|
EndpointUpdateRequest,
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/enums.py
RENAMED
|
@@ -589,6 +589,12 @@ class SessionType(str, Enum):
|
|
|
589
589
|
account_entries = 'session.account_entries'
|
|
590
590
|
download_file = 'session.download_file'
|
|
591
591
|
upload_file = 'session.upload_file'
|
|
592
|
+
agent = 'session.agent'
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
class AgentStatus(str, Enum):
|
|
596
|
+
active = 'active'
|
|
597
|
+
cancelled = 'cancelled'
|
|
592
598
|
|
|
593
599
|
|
|
594
600
|
class WebhookObject(str, Enum):
|
|
@@ -15,6 +15,7 @@ from pydantic import (
|
|
|
15
15
|
from ..typing import DictStrAny
|
|
16
16
|
from ..validators import sanitize_dict
|
|
17
17
|
from .enums import (
|
|
18
|
+
AgentStatus,
|
|
18
19
|
BankAccountStatus,
|
|
19
20
|
CardFundingType,
|
|
20
21
|
CardIssuer,
|
|
@@ -193,6 +194,10 @@ class SessionQuery(QueryParams):
|
|
|
193
194
|
type: SessionType
|
|
194
195
|
|
|
195
196
|
|
|
197
|
+
class AgentQuery(QueryParams):
|
|
198
|
+
status: Optional[AgentStatus] = None
|
|
199
|
+
|
|
200
|
+
|
|
196
201
|
class FileQuery(QueryParams):
|
|
197
202
|
type: Optional[KYCFileType] = None
|
|
198
203
|
id: Optional[str] = None
|
|
@@ -462,25 +462,6 @@ class CurpValidationRequest(BaseRequest):
|
|
|
462
462
|
return values
|
|
463
463
|
|
|
464
464
|
|
|
465
|
-
class CodiNotificationRequest(BaseRequest):
|
|
466
|
-
clave_rastreo: str
|
|
467
|
-
status: str
|
|
468
|
-
payment_type: Optional[str] = None
|
|
469
|
-
monto: Optional[int] = None
|
|
470
|
-
concepto: Optional[str] = None
|
|
471
|
-
cuenta_ordenante: Optional[str] = None
|
|
472
|
-
cuenta_beneficiario: Optional[str] = None
|
|
473
|
-
nombre_ordenante: Optional[str] = None
|
|
474
|
-
nombre_beneficiario: Optional[str] = None
|
|
475
|
-
referencia_numerica: Optional[str] = None
|
|
476
|
-
alias_celular_ordenante: Optional[str] = None
|
|
477
|
-
digito_verificador_ordenante: Optional[str] = None
|
|
478
|
-
alias_celular_beneficiario: Optional[str] = None
|
|
479
|
-
digito_verificador_beneficiario: Optional[str] = None
|
|
480
|
-
folio_esquema: str
|
|
481
|
-
estampa_tiempo_cobro: Optional[int] = None
|
|
482
|
-
|
|
483
|
-
|
|
484
465
|
class TOSRequest(BaseModel):
|
|
485
466
|
type: TermsOfService
|
|
486
467
|
version: str
|
|
@@ -664,6 +645,26 @@ class SessionRequest(BaseRequest):
|
|
|
664
645
|
)
|
|
665
646
|
|
|
666
647
|
|
|
648
|
+
class AgentRequest(BaseRequest):
|
|
649
|
+
pairing_code: str
|
|
650
|
+
phone_number: PhoneNumber
|
|
651
|
+
device_info: DictStrAny = Field(default_factory=dict)
|
|
652
|
+
model_config = ConfigDict(
|
|
653
|
+
json_schema_extra={
|
|
654
|
+
'example': {
|
|
655
|
+
'pairing_code': 'secret_code',
|
|
656
|
+
'phone_number': '+525512345678',
|
|
657
|
+
'device_info': {'client': 'cursor', 'os': 'macOS'},
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
)
|
|
661
|
+
|
|
662
|
+
@field_validator('phone_number', mode='before')
|
|
663
|
+
@classmethod
|
|
664
|
+
def normalize_phone(cls, v: PhoneNumber) -> str:
|
|
665
|
+
return normalize_phone_number(str(v))
|
|
666
|
+
|
|
667
|
+
|
|
667
668
|
class EndpointRequest(BaseRequest):
|
|
668
669
|
url: SerializableHttpUrl
|
|
669
670
|
events: Optional[list[WebhookEvent]] = None
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.1.39.dev2'
|
|
@@ -2,9 +2,9 @@ import pytest
|
|
|
2
2
|
from pydantic import ValidationError
|
|
3
3
|
from pydantic_extra_types.phone_numbers import PhoneNumber
|
|
4
4
|
|
|
5
|
+
from cuenca_validations.types import AgentRequest
|
|
5
6
|
from cuenca_validations.types.enums import VerificationType
|
|
6
7
|
from cuenca_validations.types.requests import (
|
|
7
|
-
CodiNotificationRequest,
|
|
8
8
|
PasswordResetRequest,
|
|
9
9
|
UpdateTransferRequest,
|
|
10
10
|
UserTOSAgreementRequest,
|
|
@@ -126,24 +126,9 @@ def test_update_transfer_request_forbids_extra() -> None:
|
|
|
126
126
|
assert 'Extra inputs are not permitted' in str(ex.value)
|
|
127
127
|
|
|
128
128
|
|
|
129
|
-
def
|
|
130
|
-
|
|
131
|
-
'
|
|
132
|
-
'
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
'concepto': 'Pago CoDi test',
|
|
136
|
-
'cuenta_ordenante': '646180157000000001',
|
|
137
|
-
'cuenta_beneficiario': '646180157000000002',
|
|
138
|
-
'nombre_ordenante': 'Juan Perez',
|
|
139
|
-
'nombre_beneficiario': 'Maria Lopez',
|
|
140
|
-
'folio_esquema': '25535dd9e425535dd9ee',
|
|
141
|
-
'estampa_tiempo_cobro': 1704067200000,
|
|
142
|
-
'referencia_numerica': '1234567',
|
|
143
|
-
'alias_celular_ordenante': '2700754676',
|
|
144
|
-
'digito_verificador_ordenante': '34',
|
|
145
|
-
'alias_celular_beneficiario': '0754676270',
|
|
146
|
-
'digito_verificador_beneficiario': '27',
|
|
147
|
-
}
|
|
148
|
-
req = CodiNotificationRequest.model_validate(payload)
|
|
149
|
-
assert req.model_dump() == payload
|
|
129
|
+
def test_agent_request_normalizes_phone() -> None:
|
|
130
|
+
request = AgentRequest(
|
|
131
|
+
pairing_code='A1B2C3',
|
|
132
|
+
phone_number='+52 55 1234 5678',
|
|
133
|
+
)
|
|
134
|
+
assert request.phone_number == '+525512345678'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.1.39.dev0'
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/__init__.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/card_bins.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/errors.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/py.typed
RENAMED
|
File without changes
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/card.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/files.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/types/morals.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/typing.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.39.dev0 → cuenca_validations-2.1.39.dev2}/cuenca_validations/validators.py
RENAMED
|
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
|