Initial commit

Add first working version of the statistics API.
This commit is contained in:
Alan Orth 2018-09-18 14:03:15 +03:00
commit 36633e405a
Signed by: alanorth
GPG Key ID: 0FB860CC9C45B1B9
1 changed files with 44 additions and 0 deletions

44
app.py Normal file
View File

@ -0,0 +1,44 @@
# Tested with Python 3.6
# See DSpace Solr docs for tips about parameters
# https://wiki.duraspace.org/display/DSPACE/Solr
import falcon
from SolrClient import SolrClient
solr_server = 'http://localhost:3000/solr'
solr_core = 'statistics'
class ItemResource:
def on_get(self, req, resp):
"""Handles GET requests"""
# Return HTTPBadRequest if id parameter is not present and valid
item_id = req.get_param_as_int("id", required=True, min=0)
solr = SolrClient(solr_server)
# Get views
res = solr.query(solr_core, {
'q':'type:0',
'fq':'owningItem:{0} AND isBot:false AND statistics_type:view AND -bundleName:ORIGINAL'.format(item_id)
})
views = res.get_num_found()
# Get downloads
res = solr.query(solr_core, {
'q':'type:0',
'fq':'owningItem:{0} AND isBot:false AND statistics_type:view AND -(bundleName:[* TO *] -bundleName:ORIGINAL)'.format(item_id)
})
downloads = res.get_num_found()
statistics = {
'id': item_id,
'views': views,
'downloads': downloads
}
resp.media = statistics
api = falcon.API()
api.add_route('/item', ItemResource())