mirror of
https://github.com/ilri/dspace-statistics-api.git
synced 2024-11-25 23:58:18 +01:00
Compare commits
4 Commits
01e9756cf2
...
787eec20ea
Author | SHA1 | Date | |
---|---|---|---|
787eec20ea | |||
9e6fcf279b | |||
4dbf734a4b | |||
a0d0a47150 |
@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Add ORDER BY to /items resource to make sure results are returned
|
- Add ORDER BY to /items resource to make sure results are returned
|
||||||
deterministically
|
deterministically
|
||||||
- Use `fl` parameter in indexer to return only the id field
|
- Use `fl` parameter in indexer to return only the id field
|
||||||
|
- Minor refactoring of imports for PEP8 style
|
||||||
|
|
||||||
## [1.3.2] - 2020-11-18
|
## [1.3.2] - 2020-11-18
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import falcon
|
import falcon
|
||||||
|
import psycopg2.extras
|
||||||
|
|
||||||
from .database import DatabaseManager
|
from .database import DatabaseManager
|
||||||
from .items import get_downloads, get_views
|
from .items import get_downloads, get_views
|
||||||
@ -120,8 +121,6 @@ class ItemResource:
|
|||||||
def on_get(self, req, resp, item_id):
|
def on_get(self, req, resp, item_id):
|
||||||
"""Handles GET requests"""
|
"""Handles GET requests"""
|
||||||
|
|
||||||
import psycopg2.extras
|
|
||||||
|
|
||||||
# Adapt Python’s uuid.UUID type to PostgreSQL’s uuid
|
# Adapt Python’s uuid.UUID type to PostgreSQL’s uuid
|
||||||
# See: https://www.psycopg.org/docs/extras.html
|
# See: https://www.psycopg.org/docs/extras.html
|
||||||
psycopg2.extras.register_uuid()
|
psycopg2.extras.register_uuid()
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
from .config import SOLR_SERVER
|
from .config import SOLR_SERVER
|
||||||
|
from .util import get_statistics_shards
|
||||||
|
|
||||||
|
|
||||||
def get_views(solr_date_string: str, items: list):
|
def get_views(solr_date_string: str, items: list):
|
||||||
@ -11,7 +12,6 @@ def get_views(solr_date_string: str, items: list):
|
|||||||
:parameter items (list): a list of item IDs
|
:parameter items (list): a list of item IDs
|
||||||
:returns: A dict of item IDs and views
|
:returns: A dict of item IDs and views
|
||||||
"""
|
"""
|
||||||
from .util import get_statistics_shards
|
|
||||||
shards = get_statistics_shards()
|
shards = get_statistics_shards()
|
||||||
|
|
||||||
# Join the UUIDs with "OR" and escape the hyphens for Solr
|
# Join the UUIDs with "OR" and escape the hyphens for Solr
|
||||||
@ -20,6 +20,7 @@ def get_views(solr_date_string: str, items: list):
|
|||||||
solr_query_params = {
|
solr_query_params = {
|
||||||
"q": f"id:({solr_items_string})",
|
"q": f"id:({solr_items_string})",
|
||||||
"fq": f"type:2 AND isBot:false AND statistics_type:view AND time:{solr_date_string}",
|
"fq": f"type:2 AND isBot:false AND statistics_type:view AND time:{solr_date_string}",
|
||||||
|
"fl": "id",
|
||||||
"facet": "true",
|
"facet": "true",
|
||||||
"facet.field": "id",
|
"facet.field": "id",
|
||||||
"facet.mincount": 1,
|
"facet.mincount": 1,
|
||||||
@ -61,7 +62,6 @@ def get_downloads(solr_date_string: str, items: list):
|
|||||||
:parameter items (list): a list of item IDs
|
:parameter items (list): a list of item IDs
|
||||||
:returns: A dict of item IDs and downloads
|
:returns: A dict of item IDs and downloads
|
||||||
"""
|
"""
|
||||||
from .util import get_statistics_shards
|
|
||||||
shards = get_statistics_shards()
|
shards = get_statistics_shards()
|
||||||
|
|
||||||
# Join the UUIDs with "OR" and escape the hyphens for Solr
|
# Join the UUIDs with "OR" and escape the hyphens for Solr
|
||||||
@ -70,6 +70,7 @@ def get_downloads(solr_date_string: str, items: list):
|
|||||||
solr_query_params = {
|
solr_query_params = {
|
||||||
"q": f"owningItem:({solr_items_string})",
|
"q": f"owningItem:({solr_items_string})",
|
||||||
"fq": f"type:0 AND isBot:false AND statistics_type:view AND bundleName:ORIGINAL AND time:{solr_date_string}",
|
"fq": f"type:0 AND isBot:false AND statistics_type:view AND bundleName:ORIGINAL AND time:{solr_date_string}",
|
||||||
|
"fl": "owningItem",
|
||||||
"facet": "true",
|
"facet": "true",
|
||||||
"facet.field": "owningItem",
|
"facet.field": "owningItem",
|
||||||
"facet.mincount": 1,
|
"facet.mincount": 1,
|
||||||
@ -102,4 +103,5 @@ def get_downloads(solr_date_string: str, items: list):
|
|||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
# vim: set sw=4 ts=4 expandtab:
|
# vim: set sw=4 ts=4 expandtab:
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
|
import datetime
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
|
||||||
import falcon
|
import falcon
|
||||||
|
import requests
|
||||||
|
|
||||||
|
from .config import SOLR_SERVER
|
||||||
|
|
||||||
|
|
||||||
def get_statistics_shards():
|
def get_statistics_shards():
|
||||||
@ -8,11 +15,6 @@ def get_statistics_shards():
|
|||||||
Returns:
|
Returns:
|
||||||
str:A list of Solr statistics shards separated by commas.
|
str:A list of Solr statistics shards separated by commas.
|
||||||
"""
|
"""
|
||||||
import re
|
|
||||||
|
|
||||||
import requests
|
|
||||||
|
|
||||||
from .config import SOLR_SERVER
|
|
||||||
|
|
||||||
# Initialize an empty list for statistics core years
|
# Initialize an empty list for statistics core years
|
||||||
statistics_core_years = []
|
statistics_core_years = []
|
||||||
@ -58,7 +60,6 @@ def get_statistics_shards():
|
|||||||
|
|
||||||
|
|
||||||
def is_valid_date(date):
|
def is_valid_date(date):
|
||||||
import datetime
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Solr date format is: 2020-01-01T00:00:00Z
|
# Solr date format is: 2020-01-01T00:00:00Z
|
||||||
@ -78,7 +79,6 @@ def validate_items_post_parameters(req, resp, resource, params):
|
|||||||
|
|
||||||
Meant to be used as a `before` hook.
|
Meant to be used as a `before` hook.
|
||||||
"""
|
"""
|
||||||
import json
|
|
||||||
|
|
||||||
# Only attempt to read the POSTed request if its length is not 0 (or
|
# Only attempt to read the POSTed request if its length is not 0 (or
|
||||||
# rather, in the Python sense, if length is not a False-y value).
|
# rather, in the Python sense, if length is not a False-y value).
|
||||||
|
Loading…
Reference in New Issue
Block a user