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

1from hashlib import md5 

2 

3from integrify.lsim import env 

4from integrify.lsim.types import DateTime 

5from integrify.schemas import PayloadBaseModel 

6from pydantic import Field, computed_field 

7 

8 

9class SendSMSGetRequestSchema(PayloadBaseModel): 

10 msisdn: str 

11 """SMS göndəriləcək nömrə: ölkə kodu + operator kodu + nömrə: 99450XXXXXXX""" 

12 

13 text: str 

14 """Mesaj məzmunu""" 

15 

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.""" 

24 

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() 

38 

39 

40class SendSMSPostRequestSchema(SendSMSGetRequestSchema): 

41 scheduled: DateTime 

42 

43 

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) 

47 

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() 

55 

56 

57class GetReportGetRequestSchema(PayloadBaseModel): 

58 trans_id: int 

59 """Uğurlu SMS göndərdikdə, yaradılan SMS ID-si""" 

60 

61 # Not required 

62 login: str = Field(env.LSIM_LOGIN, validate_default=True) 

63 """Uğurlu SMS göndərildikdə alınan transaction id""" 

64 

65 

66class GetReportPostRequestSchema(GetReportGetRequestSchema): 

67 trans_id: int = Field(serialization_alias='transid')