Example #1
0
def search_metrics():
    search_req = ApiSearchRequest(request.args)
    if not search_req.validate():
        statsd.incr("api.search_metrics.invalid")
        raise api_errors.ApiInvalidRequest(search_req.input_errors())
    resp = search_req.execute()
    search_response = resp.search_response()
    bibcodes = map(lambda a: a['bibcode'], filter(lambda a: 'bibcode' in a, search_response['results']['docs']))
    metrics = generate_metrics(bibcodes=bibcodes, fmt='API')
    search_response['results'] = metrics
    statsd.incr("api.search_metrics.success")
    return search_response
Example #2
0
def record_metrics(identifier):
    record_req = ApiRecordRequest(identifier, request.args)
    if not record_req.validate():
        statsd.incr("api.record_metrics.invalid")
        raise api_errors.ApiInvalidRequest(record_req.errors())
    resp = record_req.execute()
    if not resp.get_hits() > 0:
        statsd.incr("api.record_metrics.not_found")
        raise api_errors.ApiRecordNotFound(identifier)
    statsd.incr("api.record_metrics.success")
    record = resp.record_response()
    metrics = generate_metrics(bibcodes=[record['bibcode']], fmt='API')
    return metrics