Skip to content

Commit

Permalink
fix: Add DeviceType Decoder (#57)
Browse files Browse the repository at this point in the history
  • Loading branch information
GuyKh committed Feb 28, 2024
1 parent a5e58c2 commit bf671d9
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 12 deletions.
16 changes: 4 additions & 12 deletions iec_api/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
from iec_api.models.device import Device, Devices
from iec_api.models.device import decoder as devices_decoder
from iec_api.models.device_type import DeviceType
from iec_api.models.device_type import decoder as device_type_decoder
from iec_api.models.electric_bill import ElectricBill
from iec_api.models.electric_bill import decoder as electric_bill_decoder
from iec_api.models.exceptions import IECError
Expand Down Expand Up @@ -192,18 +193,9 @@ def get_devices_by_contract_id(token: JWT, bp_number: str, contract_id: str) ->

def get_device_type(token: JWT, bp_number: str, contract_id: str) -> DeviceType:
"""Get Device Type data response from IEC API."""
headers = add_jwt_to_headers(HEADERS_WITH_AUTH, token.id_token)
# sending get request and saving the response as response object
response = _get_url(url=GET_DEVICE_TYPE_URL.format(bp_number=bp_number, contract_id=contract_id), headers=headers)

if response.status_code != 200:
if len(response.content) > 0:
login_error_response = ErrorResponseDescriptor.from_dict(response.json())
raise IECError(login_error_response.code, login_error_response.error)
else:
raise IECError(response.status_code, response.reason)

return DeviceType.from_dict(response.json())
return _get_response_with_descriptor(
token, GET_DEVICE_TYPE_URL.format(bp_number=bp_number, contract_id=contract_id), device_type_decoder
)


def get_billing_invoices(token: JWT, bp_number: str, contract_id: str) -> GetInvoicesBody:
Expand Down
6 changes: 6 additions & 0 deletions iec_api/models/device_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
from typing import Optional

from mashumaro import DataClassDictMixin, field_options
from mashumaro.codecs import BasicDecoder

from iec_api.models.response_descriptor import ResponseWithDescriptor

#
# GET https://iecapi.iec.co.il//api/Device/type/{bp_number}/{contract_id}/false
Expand Down Expand Up @@ -44,3 +47,6 @@ class DeviceType(DataClassDictMixin):
balance_date: Optional[str] = field(metadata=field_options(alias="balanceDate"))
is_active: bool = field(metadata=field_options(alias="isActive"))
number_of_devices: int = field(metadata=field_options(alias="numberOfDevices"))


decoder = BasicDecoder(ResponseWithDescriptor[DeviceType])

0 comments on commit bf671d9

Please sign in to comment.