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)
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])