diff --git a/.gitignore b/.gitignore index ed8ebf5..582d4db 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -__pycache__ \ No newline at end of file +__pycache__ + +*.db \ No newline at end of file diff --git a/server/api/forum_api.py b/server/api/forum_api.py index 359dffe..05b7abe 100644 --- a/server/api/forum_api.py +++ b/server/api/forum_api.py @@ -1,10 +1,12 @@ import time +import dataclasses import flask import flask_login from . import helpers import database +import mgU forum = flask.Blueprint( @@ -42,6 +44,27 @@ def send_message() -> tuple[str, int]: @forum.route('/forum/get_threads') @flask_login.login_required -def get_forum_threads() -> tuple[str, int]: - return '', 200 +def get_forum_threads() -> tuple[flask.Response, int]: + """ + Get all threads from forums the current user has access to. + """ + user_id: str = flask_login.current_user.get_id() + + # Get all forums the user has access to + user_forums: list[mgU.Forum] = database.get_user_forums(int(user_id)) + + if not user_forums: + return flask.jsonify({"threads": []}), 200 + + # Get all threads from all user's forums + all_threads: list[mgU.Thread] = [] + for forum in user_forums: + if forum.id: # Make sure forum has an ID + forum_threads = database.get_forum_threads(forum.id) + all_threads.extend(forum_threads) + + # Convert threads to dictionary format + threads_dict = {"threads": [dataclasses.asdict(thread) for thread in all_threads]} + + return flask.jsonify(threads_dict), 200 diff --git a/server/example_jsons/get/get_threads.json b/server/example_jsons/get/get_threads.json new file mode 100644 index 0000000..3ccddb8 --- /dev/null +++ b/server/example_jsons/get/get_threads.json @@ -0,0 +1,9 @@ +{ + "threads": [ + { + "id": 1, + "name": "Thread Name", + "forum": 1 + } + ] +} \ No newline at end of file diff --git a/server/example_jsons/create_user.json b/server/example_jsons/post/create_user.json similarity index 100% rename from server/example_jsons/create_user.json rename to server/example_jsons/post/create_user.json diff --git a/server/example_jsons/send_message.json b/server/example_jsons/post/send_message.json similarity index 100% rename from server/example_jsons/send_message.json rename to server/example_jsons/post/send_message.json