From a06ba950954b8349df8a0e40674fbfd978e5ac23 Mon Sep 17 00:00:00 2001 From: motty Date: Sun, 5 Nov 2023 15:41:02 +0900 Subject: [PATCH] Add missing try-except block and fix typo in sensor endpoint --- src/kb_2315/backend/api/endpoints/sensor.py | 54 ++++++++++++-------- src/kb_2315/backend/api/endpoints/session.py | 21 ++++---- src/kb_2315/backend/api/endpoints/shoe.py | 6 +-- src/kb_2315/backend/api/router.py | 4 +- 4 files changed, 49 insertions(+), 36 deletions(-) diff --git a/src/kb_2315/backend/api/endpoints/sensor.py b/src/kb_2315/backend/api/endpoints/sensor.py index 97b6022..9f841cb 100644 --- a/src/kb_2315/backend/api/endpoints/sensor.py +++ b/src/kb_2315/backend/api/endpoints/sensor.py @@ -1,34 +1,44 @@ +from typing import cast +from uuid import UUID from fastapi import APIRouter from kb_2315 import notify from kb_2315.backend.crud import crud_sensor, crud_session, crud_shoe -from kb_2315.backend.schemas import sensor +from kb_2315.backend.schemas import schema_sensor router = APIRouter() @router.post("/") -def search_shoe(item: sensor) -> None: - crud_sensor.add_sensor( - device_id=item.device_id, - external_temperature=item.external_temperature, - external_humidity=item.external_humidity, - internal_temperature=item.internal_temperature, - internal_humidity=item.internal_humidity, - sesison_id=item.session_id, - drying=item.drying, - ) - - if not item.drying: - shoe_id: int | None = crud_session.search_session_by(session_id=item.session_id)[0].shoe_id - shoe_name: str | None = crud_shoe.search_shoe_by(id=shoe_id)[0].name - - if not shoe_name: - shoe_name = "靴" - - notify.line.send_message( - message=f"{shoe_name} の乾燥が完了しました\nシューズキーパーを入れてください", +def search_shoe(item: schema_sensor.sensor) -> None: + try: + uuid = UUID(item.session_id) + + crud_sensor.add_sensor( + device_id=item.device_id, + external_temperature=item.external_temperature, + external_humidity=item.external_humidity, + internal_temperature=item.internal_temperature, + internal_humidity=item.internal_humidity, + sesison_id=uuid, + drying=item.drying, ) - return None + if not item.drying: + shoe_name: str = "靴" + + shoe_id: int | None = crud_session.search_session_by(session_id=uuid)[0].shoe_id + + try: + shoe_name = crud_shoe.search_shoe_by(id=shoe_id)[0].name + except IndexError: + pass + + notify.line.send_message( + message=f"{shoe_name} の乾燥が完了しました\nシューズキーパーを入れてください", + ) + + return None + except ValueError: + pass diff --git a/src/kb_2315/backend/api/endpoints/session.py b/src/kb_2315/backend/api/endpoints/session.py index 4240d61..b086cab 100644 --- a/src/kb_2315/backend/api/endpoints/session.py +++ b/src/kb_2315/backend/api/endpoints/session.py @@ -11,16 +11,19 @@ @router.get("/") -def create_session(item: schema_session.create_session) -> UUID: - session_id: UUID = crud_session.add_session(shoe_id=item.shoe_id) +def create_session(shoe_id: int) -> schema_session.create_session: + shoe_name: str | None = "靴" - shoe_name: str | None = crud_shoe.search_shoe_by(id=item.shoe_id)[0].name + session_id: UUID = crud_session.add_session(shoe_id=shoe_id) - if not shoe_name: - shoe_name = "靴" + try: + shoe_name = crud_shoe.search_shoe_by(id=shoe_id)[0].name + except IndexError: + pass - notify.line.send_message( - message=f"{shoe_name} の乾燥を開始します", - ) + if False: + notify.line.send_message( + message=f"{shoe_name} の乾燥を開始します", + ) - return session_id + return schema_session.create_session(session_id=session_id) diff --git a/src/kb_2315/backend/api/endpoints/shoe.py b/src/kb_2315/backend/api/endpoints/shoe.py index 90c9849..8464add 100644 --- a/src/kb_2315/backend/api/endpoints/shoe.py +++ b/src/kb_2315/backend/api/endpoints/shoe.py @@ -2,14 +2,14 @@ from kb_2315.backend.crud import crud_shoe from kb_2315.backend.models import Shoe -from kb_2315.backend.schemas import shoe +from kb_2315.backend.schemas import schema_shoe router = APIRouter() @router.get("/") -def search_shoe(id: int | None = None, name: str | None = None) -> list[shoe]: +def search_shoe(id: int | None = None, name: str | None = None) -> list[schema_shoe.shoe]: shoes: list[Shoe] = crud_shoe.search_shoe_by(id=id, name=name) - return [shoe(id=s.id, name=s.name) for s in shoes] + return [schema_shoe.shoe(id=s.id, name=s.name) for s in shoes] diff --git a/src/kb_2315/backend/api/router.py b/src/kb_2315/backend/api/router.py index c131e18..69559d6 100644 --- a/src/kb_2315/backend/api/router.py +++ b/src/kb_2315/backend/api/router.py @@ -5,7 +5,7 @@ api_router = APIRouter() +api_router.include_router(line.router, prefix="/line", tags=["hook"]) api_router.include_router(sensor.router, prefix="/sensor", tags=["hook"]) -api_router.include_router(shoe.router, prefix="/shoe", tags=["hook"]) api_router.include_router(session.router, prefix="/session", tags=["hook"]) -api_router.include_router(line.router, prefix="/", tags=["hook"]) +api_router.include_router(shoe.router, prefix="/shoe", tags=["hook"])