Coverage for src/unit_cooler/actuator/api/valve_status.py: 100%
12 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-28 11:52 +0000
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-28 11:52 +0000
1#!/usr/bin/env python3
2"""バルブの状態を JSON で返す API エンドポイントを提供します。"""
4import flask
5import my_lib.flask_util
6import my_lib.webapp.config
8import unit_cooler.actuator.valve
9import unit_cooler.const
11blueprint = flask.Blueprint("valve-status", __name__, url_prefix=my_lib.webapp.config.URL_PREFIX)
14@blueprint.route("/api/valve_status", methods=["GET"])
15@my_lib.flask_util.support_jsonp
16def get_valve_status():
17 """バルブの状態を JSON 形式で返します。"""
18 status = unit_cooler.actuator.valve.get_status()
20 # VALVE_STATE を JSON シリアライズ可能な形式に変換
21 response = {
22 "state": status["state"].name,
23 "state_value": status["state"].value,
24 "duration": status["duration"],
25 }
27 return flask.jsonify(response)