From c2ec1b61f3a0a8f4df4f41ddc3897bf3bc708b87 Mon Sep 17 00:00:00 2001 From: Matt Davis Date: Sun, 6 Oct 2024 11:50:05 -0400 Subject: [PATCH] Update relays condition to be an array returend --- opensensor/collection_apis.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/opensensor/collection_apis.py b/opensensor/collection_apis.py index 631d7b4..343af77 100644 --- a/opensensor/collection_apis.py +++ b/opensensor/collection_apis.py @@ -1,3 +1,4 @@ +import json import logging from datetime import datetime, timedelta, timezone from typing import Generic, List, Optional, Type, TypeVar, get_args, get_origin @@ -21,6 +22,7 @@ Moisture, Pressure, RelayBoard, + RelayStatus, Temperature, ) from opensensor.db import get_open_sensor_db @@ -574,7 +576,14 @@ def sample_and_paginate_collection( # So, you can directly use it to create the response model instances. data = [VPD(**item) for item in raw_data] elif response_model is RelayBoard: - data = [RelayBoard(**item) for item in raw_data] + data = [] + relays = [] + for item in raw_data: + for relay in item["relays"]: + relay = json.loads(relay) + relays.append(RelayStatus(**relay)) + relay_board = RelayBoard(relays=relays) + data.append(relay_board) else: data = [create_model_instance(response_model, item, unit) for item in raw_data]