diff options
Diffstat (limited to 'app/blueprints/api/__init__.py')
-rw-r--r-- | app/blueprints/api/__init__.py | 83 |
1 files changed, 2 insertions, 81 deletions
diff --git a/app/blueprints/api/__init__.py b/app/blueprints/api/__init__.py index 5092f21..03adaf8 100644 --- a/app/blueprints/api/__init__.py +++ b/app/blueprints/api/__init__.py @@ -14,87 +14,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. - -from flask import * -from flask_user import * -from app.models import * -from app.utils import is_package_page -from app.querybuilder import QueryBuilder +from flask import Blueprint bp = Blueprint("api", __name__) -@bp.route("/api/packages/") -def packages(): - qb = QueryBuilder(request.args) - query = qb.buildPackageQuery() - ver = qb.getMinetestVersion() - - pkgs = [package.getAsDictionaryShort(current_app.config["BASE_URL"], version=ver) \ - for package in query.all()] - return jsonify(pkgs) - - -@bp.route("/api/packages/<author>/<name>/") -@is_package_page -def package(package): - return jsonify(package.getAsDictionary(current_app.config["BASE_URL"])) - - -@bp.route("/api/packages/<author>/<name>/dependencies/") -@is_package_page -def package_dependencies(package): - ret = [] - - for dep in package.dependencies: - name = None - fulfilled_by = None - - if dep.package: - name = dep.package.name - fulfilled_by = [ dep.package.getAsDictionaryKey() ] - - elif dep.meta_package: - name = dep.meta_package.name - fulfilled_by = [ pkg.getAsDictionaryKey() for pkg in dep.meta_package.packages] - - else: - raise "Malformed dependency" - - ret.append({ - "name": name, - "is_optional": dep.optional, - "packages": fulfilled_by - }) - - return jsonify(ret) - - -@bp.route("/api/topics/") -def topics(): - qb = QueryBuilder(request.args) - query = qb.buildTopicQuery(show_added=True) - return jsonify([t.getAsDictionary() for t in query.all()]) - - -@bp.route("/api/topic_discard/", methods=["POST"]) -@login_required -def topic_set_discard(): - tid = request.args.get("tid") - discard = request.args.get("discard") - if tid is None or discard is None: - abort(400) - - topic = ForumTopic.query.get(tid) - if not topic.checkPerm(current_user, Permission.TOPIC_DISCARD): - abort(403) - - topic.discarded = discard == "true" - db.session.commit() - - return jsonify(topic.getAsDictionary()) - - -@bp.route("/api/minetest_versions/") -def versions(): - return jsonify([{ "name": rel.name, "protocol_version": rel.protocol }\ - for rel in MinetestRelease.query.all() if rel.getActual() is not None]) +from . import tokens, endpoints |