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

18 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 

3from urllib.parse import parse_qsl 

4 

5from pydantic import BaseModel, model_validator 

6 

7from integrify.epoint.schemas.response import BaseWithCodeSchema 

8 

9 

10class CallbackDataSchema(BaseModel): 

11 """Raw və encoded callback data schema-sı""" 

12 

13 data: str 

14 """Base64 formatında gələn data""" 

15 

16 signature: str 

17 """EPOINT_PRIVATE_KEY""" 

18 

19 @model_validator(mode='before') 

20 @classmethod 

21 def convert_str_to_dict(cls, data: bytes) -> dict: 

22 """Query string formatında gələn datanı düzgün formata çevirmək üçün funksiya""" 

23 return dict(parse_qsl(data.decode())) 

24 

25 

26class DecodedCallbackDataSchema(BaseWithCodeSchema): 

27 """Decode olunmuş callback data schema-sı""" 

28 

29 order_id: Optional[str] = None 

30 """Tətbiqinizdə unikal əməliyyat ID""" 

31 

32 card_id: Optional[str] = None 

33 """Ödənişləri yerinə yetirmək üçün istifadə edilməsi 

34 lazım olan unikal kart identifikatoru""" 

35 

36 split_amount: Optional[Decimal] = None 

37 """İkinci istifadəçi üçün ödəniş məbləği.""" 

38 

39 other_attr: Optional[str] = None 

40 """Əlavə göndərdiyiniz seçimlər"""