Ejemplo n.º 1
0
def api_timeseries_get_list():
    """
    Returns timeseries data for statuses.

    `since` is mandatory. `until` is optional - defaults to now.

    Allows filtering (see `apply filters` for details).
    Performs aggregation by resolution (default = day).
    """
    statuses = session.query(Status)
    try:
        statuses = apply_filters(statuses, request)
    except:
        return BadRequest("Wrong query. Allowed filters: message, since, until.")
    statuses = statuses.order_by(Status.timestamp)

    resolution = request.args.get('resolution', 'day')
    if resolution not in RESOLUTIONS.keys():
        return BadRequest("Wrong resolution. Allowed resolutions: %s" % RESOLUTIONS.keys())

    since, until = extract_since_until(request)
    if since is None:
        return BadRequest("`since` is mandatory.")
    if until is None:
        until = datetime_to_timestamp(datetime.utcnow())

    timeseries = make_timeseries(statuses, since, until, RESOLUTIONS[resolution])
    return jsonify(timeseries)
Ejemplo n.º 2
0
def api_statuses_get_list():
    """
    Returns JSON data with list of statuses.

    Allows filtering (see `apply filters` for details).
    """
    statuses = session.query(Status)
    try:
        statuses = apply_filters(statuses, request)
    except:
        return BadRequest("Wrong query. Allowed filters: message, since, until.")

    statuses = statuses.order_by(desc(Status.timestamp))
    return jsonify(data=[s.serialize() for s in statuses])