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)