Coverage for src/integrify/epoint/schemas/request.py: 100%

43 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-02-10 00:57 +0000

1from decimal import Decimal 

2from typing import Optional 

3 

4from pydantic import Field 

5 

6from integrify.epoint import env 

7from integrify.schemas import PayloadBaseModel 

8 

9 

10class MinimalPaymentRequestSchema(PayloadBaseModel): 

11 amount: Decimal 

12 currency: str 

13 order_id: str 

14 

15 

16class BasePaymentRequestSchema(MinimalPaymentRequestSchema): 

17 success_redirect_url: Optional[str] = env.EPOINT_SUCCESS_REDIRECT_URL 

18 error_redirect_url: Optional[str] = env.EPOINT_FAILED_REDIRECT_URL 

19 description: Optional[str] = None 

20 

21 

22############################################################################## 

23class PaymentRequestSchema(BasePaymentRequestSchema): 

24 other_attr: Optional[dict] = None 

25 

26 

27class GetTransactionStatusRequestSchema(PayloadBaseModel): 

28 transaction: str = Field(validation_alias='transaction_id') 

29 

30 

31class SaveCardRequestSchema(PayloadBaseModel): 

32 pass 

33 

34 

35class PayWithSavedCardRequestSchema(MinimalPaymentRequestSchema): 

36 card_id: str 

37 

38 

39class PayAndSaveCardRequestSchema(BasePaymentRequestSchema): 

40 pass 

41 

42 

43class PayoutRequestSchema(MinimalPaymentRequestSchema): 

44 card_id: str 

45 description: Optional[str] = None 

46 

47 

48class RefundRequestSchema(PayloadBaseModel): 

49 transaction: str = Field(validation_alias='transaction_id') 

50 currency: str 

51 amount: Optional[Decimal] = None 

52 

53 

54class SplitPayRequestSchema(BasePaymentRequestSchema): 

55 split_user: str = Field(validation_alias='split_user_id') 

56 split_amount: Decimal 

57 other_attr: Optional[dict] = None 

58 

59 

60class SplitPayWithSavedCardRequestSchema(MinimalPaymentRequestSchema): 

61 card_id: str 

62 split_user: str = Field(validation_alias='split_user_id') 

63 split_amount: Decimal 

64 description: Optional[str] = None 

65 

66 

67class SplitPayAndSaveCardRequestSchema(BasePaymentRequestSchema): 

68 split_user: str = Field(validation_alias='split_user_id') 

69 split_amount: Decimal 

70 description: Optional[str] = None