group_chat. Chat/group feature helper or route handler. This docstring was expanded to make future maintenance easier. Args: gid: Parameter. Returns: Varies.
(gid: int)
| 14798 | conn.close() |
| 14799 | return jsonify(ok=True, messages=out) |
| 14800 | |
| 14801 | @app.route("/api/dm/message/<int:mid>/edit", methods=["POST"]) |
| 14802 | @login_required |
| 14803 | def api_dm_edit(mid: int): |
| 14804 | """api_dm_edit. |
| 14805 | |
| 14806 | Chat/group feature helper or route handler. |
| 14807 | |
| 14808 | This docstring was expanded to make future maintenance easier. |
| 14809 | |
| 14810 | Args: |
| 14811 | mid: Parameter. |
| 14812 | |
| 14813 | Returns: |
| 14814 | Varies. |
| 14815 | """ |
| 14816 | me = current_user() |
| 14817 | data = request.get_json(silent=True) or {} |
| 14818 | body = (data.get("body") or "").strip() |
| 14819 | if not body: |
| 14820 | return jsonify({"ok": False, "error": "Empty message"}), 400 |
| 14821 | |
| 14822 | conn = db_connect() |
| 14823 | r = conn.execute("SELECT sender, recipient, has_voice, has_file, deleted_at FROM dm_messages WHERE id=?", (mid,)).fetchone() |
| 14824 | if not r or r["sender"] != me: |
| 14825 | conn.close() |
| 14826 | return jsonify({"ok": False, "error": "Not allowed"}), 403 |
| 14827 | if r["deleted_at"]: |
| 14828 | conn.close() |
| 14829 | return jsonify({"ok": False, "error": "Message deleted"}), 400 |
| 14830 | if r["has_voice"] or r["has_file"]: |
| 14831 | conn.close() |
| 14832 | return jsonify({"ok": False, "error": "Only text messages can be edited"}), 400 |
| 14833 | |
| 14834 | conn.execute("UPDATE dm_messages SET body_enc=?, edited_at=? WHERE id=?", (aesgcm_encrypt_text(body), now_z(), mid)) |
| 14835 | conn.commit() |
| 14836 | conn.close() |
| 14837 | return jsonify({"ok": True}) |
| 14838 | |
| 14839 | @app.route("/api/dm/message/<int:mid>/delete", methods=["POST"]) |
| 14840 | @login_required |
| 14841 | def api_dm_delete(mid: int): |
| 14842 | """api_dm_delete. |
| 14843 | |
| 14844 | Chat/group feature helper or route handler. |
| 14845 | |
| 14846 | This docstring was expanded to make future maintenance easier. |
| 14847 | |
| 14848 | Args: |
| 14849 | mid: Parameter. |
| 14850 | |
| 14851 | Returns: |
| 14852 | Varies. |
| 14853 | """ |
| 14854 | me = current_user() |
| 14855 | conn = db_connect() |
| 14856 | r = conn.execute("SELECT sender, recipient, has_voice, has_file FROM dm_messages WHERE id=?", (mid,)).fetchone() |
| 14857 | if not r or r["sender"] != me: |
nothing calls this directly
no test coverage detected