From 73c65e3561618c12f9eed11cc204fc346cd14afa Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Fri, 6 Jul 2018 23:41:44 +0100 Subject: [PATCH] Add topics API --- app/models.py | 14 ++++++++++++++ app/views/api.py | 8 ++++++++ 2 files changed, 22 insertions(+) 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)