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

1from decimal import Decimal 

2from typing import Dict, List, Optional 

3 

4from pydantic import Field 

5 

6from integrify.kapital import env 

7from integrify.kapital.schemas.utils import BaseSchema 

8from integrify.schemas import PayloadBaseModel 

9 

10 

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']) 

19 

20 

21class OrderInformationRequestSchema(PayloadBaseModel): 

22 URL_PARAM_FIELDS = {'order_id'} 

23 

24 order_id: int 

25 

26 

27class RefundOrderRequestSchema(PayloadBaseModel): 

28 URL_PARAM_FIELDS = {'order_id'} 

29 

30 order_id: int 

31 amount: Decimal 

32 phase: str = Field(default='Single') 

33 type: str = Field(default='Refund') 

34 

35 

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'}) 

40 

41 

42class PayAndSaveCardRequestSchema(CreateOrderRequestSchema): 

43 type_rid: Optional[str] = Field(default='Order_SMS') 

44 aut: Dict[str, str] = Field(default={'purpose': 'AddCard'}) 

45 

46 

47class FullReverseOrderRequestSchema(PayloadBaseModel): 

48 URL_PARAM_FIELDS = {'order_id'} 

49 

50 order_id: int 

51 phase: str = Field(default='Auth') 

52 void_kind: str = Field(default='Full', serialization_alias='voidKind') 

53 

54 

55class ClearingOrderRequestSchema(PayloadBaseModel): 

56 URL_PARAM_FIELDS = {'order_id'} 

57 

58 order_id: int 

59 amount: Decimal 

60 phase: str = Field(default='Clearing') 

61 

62 

63class PartialReverseOrderRequestSchema(PayloadBaseModel): 

64 URL_PARAM_FIELDS = {'order_id'} 

65 

66 order_id: int 

67 amount: Decimal 

68 phase: str = Field(default='Single') 

69 void_kind: str = Field(default='Partial', serialization_alias='voidKind') 

70 

71 

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 

76 

77 

78class LinkCardTokenRequestSchema(PayloadBaseModel): 

79 URL_PARAM_FIELDS = {'order_id', 'password'} 

80 

81 token: int 

82 order_id: int 

83 password: str 

84 

85 

86class ProcessPaymentWithSavedCardRequestSchema(PayloadBaseModel): 

87 URL_PARAM_FIELDS = {'order_id', 'password'} 

88 

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'})