Files
rapt-cloud-api/src/rapt/fermentation_chamber.py
2025-10-29 14:52:18 +01:00

54 lines
2.3 KiB
Python

from rapt.client import ClientException
from rapt.model.fermentation_chamber import FermentationChamberModel, FermentationChamberTelemetryModel
from typing import Optional, List
from pydantic import TypeAdapter
from loguru import logger
class FermentationChamber():
def __init__(self, client) -> None:
self.client = client
async def get_fermentation_chambers(self) -> Optional[List[FermentationChamberModel]]:
logger.debug("## GET FERMENTATION CHAMBERS ##")
try:
response_json = await self.client.get_json("/api/fermentationchambers/getfermentationchambers", None)
logger.trace(response_json)
fermentation_chambers_adapter = TypeAdapter(list[FermentationChamberModel])
return fermentation_chambers_adapter.validate_python(response_json)
except ClientException:
#TODO: Handle Exception gracefully
return None
async def get_fermentation_chamber(self, fermentation_chamber_id) -> Optional[FermentationChamberModel]:
logger.debug("## GET FERMENTATION CHAMBER ##")
params = {
"fermentationChamberId": fermentation_chamber_id
}
try:
response_json = await self.client.get_json("/api/fermentationchambers/getfermentationchamber", params)
logger.trace(response_json)
return FermentationChamberModel.model_validate(response_json)
except ClientException:
#TODO: Handle Exception gracefully
return None
async def get_telemetry(self, fermentation_chamber_id, start_date, end_date, profile_session_id) -> Optional[List[FermentationChamberTelemetryModel]]:
logger.debug("## GET TELEMETRY ##")
params = {
"fermentationChamberId": fermentation_chamber_id,
"startDate": start_date,
"endDate": end_date,
"profileSessionId": profile_session_id
}
try:
response_json = await self.client.get_json("/api/fermentationchambers/gettelemetry", params)
logger.trace(response_json)
fermentation_chambers_adapter = TypeAdapter(list[FermentationChamberTelemetryModel])
return fermentation_chambers_adapter.validate_python(response_json)
except ClientException:
#TODO: Handle Exception gracefully
return None