crashclouseau/api.py (26 lines of code) (raw):

# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. from flask import request, jsonify, abort from crashclouseau import models from . import buginfo, java def javast(): data = request.get_json() channel = data["channel"] buildid = data["buildid"] stack = data["stack"] data["stack"] = java.reformat_java_stacktrace(stack, channel, buildid) return jsonify(data) def bugs(): sgn = request.args.get("signature", "") data = buginfo.get_bugs(sgn) return jsonify(data) def reports(): signatures = request.args.getlist("signatures") if not signatures: abort(400, "No signatures provided") product = request.args.get("product") if product and product not in models.PRODUCT_TYPE.enums: abort(400, f"The product must be one of: {models.PRODUCT_TYPE.enums}") channel = request.args.get("channel") if channel and channel not in models.CHANNEL_TYPE.enums: abort(400, f"The channel must be one of: {models.CHANNEL_TYPE.enums}") res = models.Signature.get_reports(signatures, product, channel) return jsonify(res)