diff --git a/iec_api/data.py b/iec_api/data.py index 8a81819..0c3cc6b 100644 --- a/iec_api/data.py +++ b/iec_api/data.py @@ -286,3 +286,20 @@ async def get_invoice_pdf( session, url=GET_INVOICE_PDF_URL, headers=headers, json_data=request ) return await response.read() + + +async def get_invoice_pdf( + session: ClientSession, token: JWT, bp_number: int | str, contract_id: int | str, invoice_number: int | str +) -> bytes: + """Get Device Type data response from IEC API.""" + headers = commons.add_auth_bearer_to_headers(HEADERS_WITH_AUTH, token.id_token) + headers = headers.copy() # don't modify original headers + headers.update({"accept": "application/pdf", "content-type": "application/json"}) + + request = GetPdfRequest( + invoice_number=str(invoice_number), contract_id=str(contract_id), bp_number=str(bp_number) + ).to_dict() + response = await commons.send_non_json_post_request( + session, url=GET_INVOICE_PDF_URL, headers=headers, json_data=request + ) + return await response.read() diff --git a/iec_api/iec_client.py b/iec_api/iec_client.py index 7d8baf3..d46f89e 100644 --- a/iec_api/iec_client.py +++ b/iec_api/iec_client.py @@ -422,9 +422,11 @@ async def get_kwh_tariff(self) -> float: return self._kwh_tariff + async def get_usage_calculator(self) -> UsageCalculator: return await static_data.get_usage_calculator(self._session) + async def get_efs_messages( self, contract_id: Optional[str] = None, service_code: Optional[int] = None ) -> Optional[List[EfsMessage]]: