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:
adlee-was-taken
2026-04-05 12:03:05 -04:00
parent 4b0d547322
commit 7b33cb7bb4
2 changed files with 3 additions and 3 deletions

View File

@@ -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

View File

@@ -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"])