Coverage for src/integrify/kapital/schemas/request.py: 100%
62 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-02-10 00:57 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2025-02-10 00:57 +0000
1from decimal import Decimal
2from typing import Dict, List, Optional
4from pydantic import Field
6from integrify.kapital import env
7from integrify.kapital.schemas.utils import BaseSchema
8from integrify.schemas import PayloadBaseModel
11class CreateOrderRequestSchema(PayloadBaseModel, BaseSchema):
12 amount: Decimal
13 currency: str
14 description: str
15 language: Optional[str] = env.KAPITAL_INTERFACE_LANG
16 hpp_redirect_url: Optional[str] = Field(default=env.KAPITAL_REDIRECT_URL)
17 type_rid: Optional[str] = Field(default='Order_SMS')
18 hpp_cof_capture_purposes: Optional[List[str]] = Field(default=['Cit'])
21class OrderInformationRequestSchema(PayloadBaseModel):
22 URL_PARAM_FIELDS = {'order_id'}
24 order_id: int
27class RefundOrderRequestSchema(PayloadBaseModel):
28 URL_PARAM_FIELDS = {'order_id'}
30 order_id: int
31 amount: Decimal
32 phase: str = Field(default='Single')
33 type: str = Field(default='Refund')
36class SaveCardRequestSchema(CreateOrderRequestSchema):
37 type_rid: Optional[str] = Field(default='Order_DMS')
38 hpp_cof_capture_purposes: Optional[List[str]] = Field(default=['Cit', 'Recurring'])
39 aut: Dict[str, str] = Field(default={'purpose': 'AddCard'})
42class PayAndSaveCardRequestSchema(CreateOrderRequestSchema):
43 type_rid: Optional[str] = Field(default='Order_SMS')
44 aut: Dict[str, str] = Field(default={'purpose': 'AddCard'})
47class FullReverseOrderRequestSchema(PayloadBaseModel):
48 URL_PARAM_FIELDS = {'order_id'}
50 order_id: int
51 phase: str = Field(default='Auth')
52 void_kind: str = Field(default='Full', serialization_alias='voidKind')
55class ClearingOrderRequestSchema(PayloadBaseModel):
56 URL_PARAM_FIELDS = {'order_id'}
58 order_id: int
59 amount: Decimal
60 phase: str = Field(default='Clearing')
63class PartialReverseOrderRequestSchema(PayloadBaseModel):
64 URL_PARAM_FIELDS = {'order_id'}
66 order_id: int
67 amount: Decimal
68 phase: str = Field(default='Single')
69 void_kind: str = Field(default='Partial', serialization_alias='voidKind')
72class OrderWithSavedCardRequestSchema(CreateOrderRequestSchema):
73 type_rid: Optional[str] = Field(default='Order_REC')
74 hpp_redirect_url: None = None
75 hpp_cof_capture_purposes: None = None
78class LinkCardTokenRequestSchema(PayloadBaseModel):
79 URL_PARAM_FIELDS = {'order_id', 'password'}
81 token: int
82 order_id: int
83 password: str
86class ProcessPaymentWithSavedCardRequestSchema(PayloadBaseModel):
87 URL_PARAM_FIELDS = {'order_id', 'password'}
89 amount: Decimal
90 order_id: int
91 password: str
92 phase: Optional[str] = Field(default='Single')
93 conditions: Optional[Dict[str, str]] = Field(default={'cofUsage': 'Cit'})