diff options
| -rw-r--r-- | python/fatcat_web/entity_helpers.py | 2 | ||||
| -rw-r--r-- | python/fatcat_web/routes.py | 20 | ||||
| -rw-r--r-- | python/fatcat_web/search.py | 9 | 
3 files changed, 25 insertions, 6 deletions
| diff --git a/python/fatcat_web/entity_helpers.py b/python/fatcat_web/entity_helpers.py index ab5eaea8..4ecd089a 100644 --- a/python/fatcat_web/entity_helpers.py +++ b/python/fatcat_web/entity_helpers.py @@ -14,7 +14,7 @@ def enrich_container_entity(entity):      entity._stats = None      if entity.issnl:          try: -            entity._stats = get_elastic_container_stats(entity.issnl) +            entity._stats = get_elastic_container_stats(entity.ident, issnl=entity.issnl)          except Exception as e:              app.log.error(e)              pass diff --git a/python/fatcat_web/routes.py b/python/fatcat_web/routes.py index 393df33e..126bcdd0 100644 --- a/python/fatcat_web/routes.py +++ b/python/fatcat_web/routes.py @@ -687,7 +687,25 @@ def stats_json():  @crossdomain(origin='*',headers=['access-control-allow-origin','Content-Type'])  def container_issnl_stats(issnl):      try: -        stats = get_elastic_container_stats(issnl) +        container = api.lookup_container(issnl=issnl) +    except Exception as ae: +        abort(ae.status) +    try: +        stats = get_elastic_container_stats(container.ident, issnl=container.issnl) +    except Exception as ae: +        app.log.error(ae) +        abort(503) +    return jsonify(stats) + +@app.route('/container/<ident>/stats.json', methods=['GET', 'OPTIONS']) +@crossdomain(origin='*',headers=['access-control-allow-origin','Content-Type']) +def container_ident_stats(ident): +    try: +        container = api.get_container(ident) +    except Exception as ae: +        abort(ae.status) +    try: +        stats = get_elastic_container_stats(container.ident, issnl=container.issnl)      except Exception as ae:          app.log.error(ae)          abort(503) diff --git a/python/fatcat_web/search.py b/python/fatcat_web/search.py index 10549a15..709163ec 100644 --- a/python/fatcat_web/search.py +++ b/python/fatcat_web/search.py @@ -201,11 +201,11 @@ def get_elastic_entity_stats():      return stats -def get_elastic_container_stats(issnl): +def get_elastic_container_stats(ident, issnl=None):      """ -    TODO: container_id, not issnl -      Returns dict: +        ident +        issnl (optional)          total          in_web          preserved @@ -214,7 +214,7 @@ def get_elastic_container_stats(issnl):      query = {          "size": 0,          "query": { -            "term": { "container_issnl": issnl } +            "term": { "container_ident": ident }          },          "aggs": { "container_stats": { "filters": { "filters": {                  "in_web": { "term": { "in_web": "true" } }, @@ -232,6 +232,7 @@ def get_elastic_container_stats(issnl):      resp = resp.json()      buckets = resp['aggregations']['container_stats']['buckets']      stats = { +        'ident': ident,          'issnl': issnl,          'total': resp['hits']['total'],          'in_web': buckets['in_web']['doc_count'], | 
