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
« 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
5from pydantic import BaseModel, model_validator
7from integrify.epoint.schemas.response import BaseWithCodeSchema
10class CallbackDataSchema(BaseModel):
11 """Raw və encoded callback data schema-sı"""
13 data: str
14 """Base64 formatında gələn data"""
16 signature: str
17 """EPOINT_PRIVATE_KEY"""
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()))
26class DecodedCallbackDataSchema(BaseWithCodeSchema):
27 """Decode olunmuş callback data schema-sı"""
29 order_id: Optional[str] = None
30 """Tətbiqinizdə unikal əməliyyat ID"""
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"""
36 split_amount: Optional[Decimal] = None
37 """İkinci istifadəçi üçün ödəniş məbləği."""
39 other_attr: Optional[str] = None
40 """Əlavə göndərdiyiniz seçimlər"""