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

22 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-10-19 02:39 +0000

1from decimal import Decimal 

2from urllib.parse import parse_qsl 

3 

4from integrify.epoint.schemas.response import BaseWithCodeSchema 

5from pydantic import BaseModel, model_validator 

6 

7 

8class CallbackDataSchema(BaseModel): 

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

10 

11 data: str 

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

13 

14 signature: str 

15 """EPOINT_PRIVATE_KEY""" 

16 

17 @model_validator(mode='before') 

18 @classmethod 

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

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

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

22 

23 

24class DecodedCallbackDataSchema(BaseWithCodeSchema): 

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

26 

27 order_id: str | None = None 

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

29 

30 card_id: str | None = None 

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

32 lazım olan unikal kart identifikatoru""" 

33 

34 split_amount: Decimal | None = None 

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

36 

37 other_attr: str | None = None 

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