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
« 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
17class BasePayloadHandler(APIPayloadHandler):
18 """PostaGuvercini üçün baza handler. `req_model`/`resp_model` alt class-larda
19 ClassVar kimi təyin olunur."""
21 def handle_response(self, resp):
22 api_resp: APIResponse[MinimalResponseSchema] = super().handle_response(resp)
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
27 return api_resp
30class SendSingleSMSPayloadHandler(BasePayloadHandler):
31 req_model = SendSingleSMSRequestSchema
32 resp_model = SendSMSResponseSchema
35class SendMultipleSMSPayloadHandler(BasePayloadHandler):
36 req_model = SendMultipleSMSRequestSchema
37 resp_model = SendSMSResponseSchema
40class StatusPayloadHandler(BasePayloadHandler):
41 req_model = StatusRequestSchema
42 resp_model = StatusResponseSchema
45class CreditBalancePayloadHandler(BasePayloadHandler):
46 req_model = CreditBalanceRequestSchema
47 resp_model = CreditBalanceResponseSchema