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

1#!/usr/bin/env python3 

2"""バルブの状態を JSON で返す API エンドポイントを提供します。""" 

3 

4import flask 

5import my_lib.flask_util 

6import my_lib.webapp.config 

7 

8import unit_cooler.actuator.valve 

9import unit_cooler.const 

10 

11blueprint = flask.Blueprint("valve-status", __name__, url_prefix=my_lib.webapp.config.URL_PREFIX) 

12 

13 

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() 

19 

20 # VALVE_STATE を JSON シリアライズ可能な形式に変換 

21 response = { 

22 "state": status["state"].name, 

23 "state_value": status["state"].value, 

24 "duration": status["duration"], 

25 } 

26 

27 return flask.jsonify(response)