from flask import Blueprint, jsonify from flask_login import login_required, current_user from app.db import get_db presence_bp = Blueprint("presence", __name__) def _mark_current_user_online() -> None: db = get_db() db.execute( "UPDATE users SET last_seen_at = CURRENT_TIMESTAMP WHERE id = ?", (current_user.id,), ) db.commit() @presence_bp.route("/api/presence/ping", methods=["POST"]) @login_required def presence_ping(): if not current_user.is_authenticated: # should not happen due to @login_required, but just in case return ("", 204) _mark_current_user_online() return jsonify({"status": "ok"})