Initial commit - Support for Get Hydrometer and Get Fermentation Chamber
This commit is contained in:
53
src/rapt/fermentation_chamber.py
Normal file
53
src/rapt/fermentation_chamber.py
Normal file
@@ -0,0 +1,53 @@
|
||||
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
|
||||
|
||||
def get_fermentation_chambers(self) -> Optional[List[FermentationChamberModel]]:
|
||||
logger.debug("## GET FERMENTATION CHAMBERS ##")
|
||||
try:
|
||||
response_json = 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
|
||||
|
||||
def get_fermentation_chamber(self, fermentation_chamber_id) -> Optional[FermentationChamberModel]:
|
||||
logger.debug("## GET FERMENTATION CHAMBER ##")
|
||||
params = {
|
||||
"fermentationChamberId": fermentation_chamber_id
|
||||
}
|
||||
try:
|
||||
response_json = 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
|
||||
|
||||
|
||||
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 = 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
|
||||
|
||||
Reference in New Issue
Block a user