Coverage for packages/lsim/src/integrify/lsim/single/schemas/request.py: 100%
34 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 hashlib import md5
3from integrify.lsim import env
4from integrify.lsim.types import DateTime
5from integrify.schemas import PayloadBaseModel
6from pydantic import Field, computed_field
9class SendSMSGetRequestSchema(PayloadBaseModel):
10 msisdn: str
11 """SMS göndəriləcək nömrə: ölkə kodu + operator kodu + nömrə: 99450XXXXXXX"""
13 text: str
14 """Mesaj məzmunu"""
16 # Not required
17 login: str = Field(env.LSIM_LOGIN, validate_default=True)
18 password: str = Field(default=env.LSIM_PASSWORD, validate_default=True, exclude=True)
19 sender: str = env.LSIM_SENDER_NAME
20 """SMS göndərənin adı (LSIM tərəfindən təmin olunur)"""
21 unicode: bool = False
22 """Mesajın unicode olub/olmaması. Əgər mesajda unikod simvollar (`ə`, `ş`, `ü` və s.) istifadə
23 edirsizsə, `True` seçməlisiniz."""
25 @computed_field
26 def key(self) -> str:
27 """LSIM ucun key generasiyasi"""
28 return md5(
29 (
30 md5(self.password.encode(), usedforsecurity=False).hexdigest() # pylint: disable=no-member
31 + self.login
32 + self.text
33 + self.msisdn
34 + self.sender
35 ).encode(),
36 usedforsecurity=False,
37 ).hexdigest()
40class SendSMSPostRequestSchema(SendSMSGetRequestSchema):
41 scheduled: DateTime
44class CheckBalanceRequestSchema(PayloadBaseModel):
45 login: str = Field(env.LSIM_LOGIN, validate_default=True)
46 password: str = Field(default=env.LSIM_PASSWORD, validate_default=True, exclude=True)
48 @computed_field
49 def key(self) -> str:
50 """LSIM ucun key generasiyasi"""
51 return md5(
52 (md5(self.password.encode(), usedforsecurity=False).hexdigest() + self.login).encode(), # pylint: disable=no-member
53 usedforsecurity=False,
54 ).hexdigest()
57class GetReportGetRequestSchema(PayloadBaseModel):
58 trans_id: int
59 """Uğurlu SMS göndərdikdə, yaradılan SMS ID-si"""
61 # Not required
62 login: str = Field(env.LSIM_LOGIN, validate_default=True)
63 """Uğurlu SMS göndərildikdə alınan transaction id"""
66class GetReportPostRequestSchema(GetReportGetRequestSchema):
67 trans_id: int = Field(serialization_alias='transid')