24 lines
663 B
Python
24 lines
663 B
Python
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"})
|
|
|