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
« 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
4from integrify.epoint.schemas.response import BaseWithCodeSchema
5from pydantic import BaseModel, model_validator
8class CallbackDataSchema(BaseModel):
9 """Raw və encoded callback data schema-sı"""
11 data: str
12 """Base64 formatında gələn data"""
14 signature: str
15 """EPOINT_PRIVATE_KEY"""
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()))
24class DecodedCallbackDataSchema(BaseWithCodeSchema):
25 """Decode olunmuş callback data schema-sı"""
27 order_id: str | None = None
28 """Tətbiqinizdə unikal əməliyyat ID"""
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"""
34 split_amount: Decimal | None = None
35 """İkinci istifadəçi üçün ödəniş məbləği."""
37 other_attr: str | None = None
38 """Əlavə göndərdiyiniz seçimlər"""