aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models.py14
-rw-r--r--app/views/api.py8
2 files changed, 22 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py
index 39a8647..c703783 100644
--- a/app/models.py
+++ b/app/models.py
@@ -790,6 +790,20 @@ class ForumTopic(db.Model):
return self.link.replace("repo.or.cz/w/", "repo.or.cz/")
+ def getAsDictionary(self):
+ return {
+ "author": self.author.username,
+ "name": self.name,
+ "type": self.type.toName(),
+ "title": self.title,
+ "id": self.topic_id,
+ "link": self.link,
+ "posts": self.posts,
+ "views": self.views,
+ "is_wip": self.wip,
+ "created_at": self.created_at.isoformat(),
+ }
+
# Setup Flask-User
db_adapter = SQLAlchemyAdapter(db, User) # Register the User model
diff --git a/app/views/api.py b/app/views/api.py
index f6f7c64..2ec46f8 100644
--- a/app/views/api.py
+++ b/app/views/api.py
@@ -33,3 +33,11 @@ def api_packages_page():
@is_package_page
def api_package_page(package):
return jsonify(package.getAsDictionary(app.config["BASE_URL"]))
+
+
+@app.route("/api/topics/")
+def api_topics_page():
+ query = ForumTopic.query \
+ .order_by(db.asc(ForumTopic.wip), db.asc(ForumTopic.name), db.asc(ForumTopic.title))
+ pkgs = [t.getAsDictionary() for t in query.all()]
+ return jsonify(pkgs)