Coverage for src/integrify/azericard/handler.py: 100%
31 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-12-29 00:57 +0000
« prev ^ index » next coverage.py v7.9.2, created at 2025-12-29 00:57 +0000
1from typing import Optional, Union
3from integrify.api import APIPayloadHandler
4from integrify.azericard.schemas.request import (
5 AuthAndSaveCardRequestSchema,
6 AuthConfirmRequestSchema,
7 AuthRequestSchema,
8 AuthWithSavedCardRequestSchema,
9 GetTransactionStatusRequestSchema,
10 TransferConfirmDeclineRequestSchema,
11 TransferStartRequestSchema,
12)
13from integrify.azericard.schemas.response import (
14 GetTransactionStatusResponseSchema,
15 TransferConfirmResponseSchema,
16 TransferDeclineResponseSchema,
17)
18from integrify.schemas import PayloadBaseModel, _ResponseT
20# =============================================================================================== #
21# AUTH HANDLERS #
22# =============================================================================================== #
25class BaseAzericardPayloadHandler(APIPayloadHandler):
26 def __init__(
27 self,
28 req_model: Optional[type[PayloadBaseModel]] = None,
29 resp_model: Union[type[_ResponseT], type[dict], None] = dict,
30 dry: bool = True,
31 ):
32 super().__init__(req_model, resp_model, dry)
35class AuthPayloadHandler(BaseAzericardPayloadHandler):
36 def __init__(self):
37 super().__init__(req_model=AuthRequestSchema)
40class AuthConfirmPayloadHandler(BaseAzericardPayloadHandler):
41 def __init__(self):
42 super().__init__(req_model=AuthConfirmRequestSchema)
45class AuthAndSavePayloadHandler(BaseAzericardPayloadHandler):
46 def __init__(self):
47 super().__init__(req_model=AuthAndSaveCardRequestSchema)
50class AuthWithSavedCardPayloadHandler(BaseAzericardPayloadHandler):
51 def __init__(self):
52 super().__init__(req_model=AuthWithSavedCardRequestSchema)
55class GetTransactionStatusPayloadHandler(APIPayloadHandler):
56 def __init__(self):
57 super().__init__(GetTransactionStatusRequestSchema, GetTransactionStatusResponseSchema)
60# =============================================================================================== #
61# TRANSFER HANDLERS #
62# =============================================================================================== #
63class TransferStartPayloadHandler(BaseAzericardPayloadHandler):
64 def __init__(self):
65 super().__init__(req_model=TransferStartRequestSchema)
68class TransferConfirmPayloadHandler(APIPayloadHandler):
69 def __init__(self):
70 super().__init__(TransferConfirmDeclineRequestSchema, TransferConfirmResponseSchema)
73class TransferDeclinePayloadHandler(APIPayloadHandler):
74 def __init__(self):
75 super().__init__(
76 TransferConfirmDeclineRequestSchema,
77 TransferDeclineResponseSchema,
78 ) # pragma: no cover