fix(web): align arm/disarm 202 response shape with {"ok": true} convention
Follow-up to efd5c4a. The plan invented {"accepted": True, ...} for
the new 202 responses, but every other 2xx endpoint in the Flask app
returns {"ok": True, ...} — including cameras.py:108 which is direct
prior art for a 202 with the same convention. The shared JS helper
at static/js/settings.js:54 does 'if (resp.ok && result.ok)' and was
falling into the error branch on our success responses, showing a
bogus "Save failed" toast after every arm/disarm click.
Keep the 202 status. Swap the body key from 'accepted' to 'ok'.
No JS change needed.
This commit is contained in:
@@ -110,7 +110,7 @@ def test_arm_publishes_arm_request_on_mqtt(app_with_pin):
|
||||
json={"mode": "ARMED_AWAY", "pin": "1234"},
|
||||
)
|
||||
assert rv.status_code == 202
|
||||
assert rv.get_json()["accepted"] is True
|
||||
assert rv.get_json()["ok"] is True
|
||||
|
||||
pub.assert_called_once()
|
||||
call_args = pub.call_args
|
||||
|
||||
@@ -78,7 +78,7 @@ def arm_system():
|
||||
except Exception:
|
||||
current_app.logger.exception("Failed to publish arm request")
|
||||
return jsonify({"error": "bus unavailable"}), 503
|
||||
return jsonify({"accepted": True, "mode": mode}), 202
|
||||
return jsonify({"ok": True, "mode": mode}), 202
|
||||
|
||||
|
||||
@system_bp.route("/api/disarm", methods=["POST"])
|
||||
@@ -91,7 +91,7 @@ def disarm_system():
|
||||
except Exception:
|
||||
current_app.logger.exception("Failed to publish arm request")
|
||||
return jsonify({"error": "bus unavailable"}), 503
|
||||
return jsonify({"accepted": True, "mode": "DISARMED"}), 202
|
||||
return jsonify({"ok": True, "mode": "DISARMED"}), 202
|
||||
|
||||
|
||||
@system_bp.route("/api/reset-pin", methods=["POST"])
|
||||
|
||||
Reference in New Issue
Block a user