Coverage for src/integrify/lsim/single/schemas/request.py: 100%
29 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-09-01 02:22 +0000
« prev ^ index » next coverage.py v7.9.2, created at 2025-09-01 02:22 +0000
1from hashlib import md5
3from pydantic import Field, computed_field
5from integrify.lsim import env
6from integrify.lsim.types import DateTime
7from integrify.schemas import PayloadBaseModel
10class SendSMSGetRequestSchema(PayloadBaseModel):
11 msisdn: str
12 """SMS göndəriləcək nömrə: ölkə kodu + operator kodu + nömrə: 99450XXXXXXX"""
14 text: str
15 """Mesaj məzmunu"""
17 # Not required
18 login: str = Field(env.LSIM_LOGIN, validate_default=True) # type: ignore[assignment]
19 password: str = Field(default=env.LSIM_PASSWORD, validate_default=True, exclude=True) # type: ignore[assignment]
20 sender: str = env.LSIM_SENDER_NAME # type: ignore[assignment]
21 """SMS göndərənin adı (LSIM tərəfindən təmin olunur)"""
22 unicode: bool = False
23 """Mesajın unicode olub/olmaması. Əgər mesajda unikod simvollar (`ə`, `ş`, `ü` və s.) istifadə
24 edirsizsə, `True` seçməlisiniz."""
26 @computed_field
27 def key(self) -> str:
28 """LSIM ucun key generasiyasi"""
29 return md5(
30 (
31 md5(self.password.encode(), usedforsecurity=False).hexdigest() # pylint: disable=no-member
32 + self.login
33 + self.text
34 + self.msisdn
35 + self.sender
36 ).encode(),
37 usedforsecurity=False,
38 ).hexdigest()
41class SendSMSPostRequestSchema(SendSMSGetRequestSchema):
42 scheduled: DateTime
45class CheckBalanceRequestSchema(PayloadBaseModel):
46 login: str = Field(env.LSIM_LOGIN, validate_default=True) # type: ignore[assignment]
47 password: str = Field(default=env.LSIM_PASSWORD, validate_default=True, exclude=True) # type: ignore[assignment]
49 @computed_field
50 def key(self) -> str:
51 """LSIM ucun key generasiyasi"""
52 return md5(
53 (md5(self.password.encode(), usedforsecurity=False).hexdigest() + self.login).encode(), # pylint: disable=no-member
54 usedforsecurity=False,
55 ).hexdigest()
58class GetReportGetRequestSchema(PayloadBaseModel):
59 trans_id: int
60 """Uğurlu SMS göndərdikdə, yaradılan SMS ID-si"""
62 # Not required
63 login: str = Field(env.LSIM_LOGIN, validate_default=True) # type: ignore[assignment]
64 """Uğurlu SMS göndərildikdə alınan transaction id"""
67class GetReportPostRequestSchema(GetReportGetRequestSchema):
68 trans_id: int = Field(serialization_alias='transid')