Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions cuenca_validations/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
'CardTransactionType',
'CardType',
'Country',
'CodiNotificationRequest',
'Curp',
'CurpValidationRequest',
'CommissionType',
Expand Down Expand Up @@ -226,6 +227,7 @@
ApiKeyUpdateRequest,
BankAccountValidationRequest,
BeneficiaryRequest,
CodiNotificationRequest,
CurpValidationRequest,
EndpointRequest,
EndpointUpdateRequest,
Expand Down
19 changes: 19 additions & 0 deletions cuenca_validations/types/requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,25 @@ def validate_manual_curp(cls, values: DictStrAny) -> DictStrAny:
return values


class CodiNotificationRequest(BaseRequest):
clave_rastreo: str
status: str
payment_type: Optional[str] = None
monto: Optional[int] = None
concepto: Optional[str] = None
cuenta_ordenante: Optional[str] = None
cuenta_beneficiario: Optional[str] = None
nombre_ordenante: Optional[str] = None
nombre_beneficiario: Optional[str] = None
referencia_numerica: Optional[str] = None
alias_celular_ordenante: Optional[str] = None
digito_verificador_ordenante: Optional[str] = None
alias_celular_beneficiario: Optional[str] = None
digito_verificador_beneficiario: Optional[str] = None
folio_esquema: str
estampa_tiempo_cobro: Optional[int] = None


class TOSRequest(BaseModel):
type: TermsOfService
version: str
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.38'
__version__ = '2.1.39.dev0'
24 changes: 24 additions & 0 deletions tests/test_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

from cuenca_validations.types.enums import VerificationType
from cuenca_validations.types.requests import (
CodiNotificationRequest,
PasswordResetRequest,
UpdateTransferRequest,
UserTOSAgreementRequest,
Expand Down Expand Up @@ -123,3 +124,26 @@ def test_update_transfer_request_forbids_extra() -> None:
{'status': 'succeeded', 'foo': 'bar'}
)
assert 'Extra inputs are not permitted' in str(ex.value)


def test_codi_notification_request_serializes() -> None:
payload: DictStrAny = {
'clave_rastreo': 'LT123456789',
'status': 'succeeded',
'payment_type': '19',
'monto': 10000,
'concepto': 'Pago CoDi test',
'cuenta_ordenante': '646180157000000001',
'cuenta_beneficiario': '646180157000000002',
'nombre_ordenante': 'Juan Perez',
'nombre_beneficiario': 'Maria Lopez',
'folio_esquema': '25535dd9e425535dd9ee',
'estampa_tiempo_cobro': 1704067200000,
'referencia_numerica': '1234567',
'alias_celular_ordenante': '2700754676',
'digito_verificador_ordenante': '34',
'alias_celular_beneficiario': '0754676270',
'digito_verificador_beneficiario': '27',
}
req = CodiNotificationRequest.model_validate(payload)
assert req.model_dump() == payload
Loading