Coverage for packages/postaguvercini/src/integrify/postaguvercini/handlers.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-10-19 02:39 +0000

1from integrify.api import APIPayloadHandler 

2from integrify.postaguvercini.schemas.request import ( 

3 CreditBalanceRequestSchema, 

4 SendMultipleSMSRequestSchema, 

5 SendSingleSMSRequestSchema, 

6 StatusRequestSchema, 

7) 

8from integrify.postaguvercini.schemas.response import ( 

9 CreditBalanceResponseSchema, 

10 MinimalResponseSchema, 

11 SendSMSResponseSchema, 

12 StatusResponseSchema, 

13) 

14from integrify.schemas import APIResponse 

15 

16 

17class BasePayloadHandler(APIPayloadHandler): 

18 """PostaGuvercini üçün baza handler. `req_model`/`resp_model` alt class-larda 

19 ClassVar kimi təyin olunur.""" 

20 

21 def handle_response(self, resp): 

22 api_resp: APIResponse[MinimalResponseSchema] = super().handle_response(resp) 

23 

24 api_resp.ok = api_resp.body.status_code == 200 

25 api_resp.status_code = 500 if api_resp.body.status_code > 500 else api_resp.body.status_code 

26 

27 return api_resp 

28 

29 

30class SendSingleSMSPayloadHandler(BasePayloadHandler): 

31 req_model = SendSingleSMSRequestSchema 

32 resp_model = SendSMSResponseSchema 

33 

34 

35class SendMultipleSMSPayloadHandler(BasePayloadHandler): 

36 req_model = SendMultipleSMSRequestSchema 

37 resp_model = SendSMSResponseSchema 

38 

39 

40class StatusPayloadHandler(BasePayloadHandler): 

41 req_model = StatusRequestSchema 

42 resp_model = StatusResponseSchema 

43 

44 

45class CreditBalancePayloadHandler(BasePayloadHandler): 

46 req_model = CreditBalanceRequestSchema 

47 resp_model = CreditBalanceResponseSchema