Skip to content
Snippets Groups Projects
Commit b76f78c7 authored by David Trattnig's avatar David Trattnig
Browse files

From and to date filter for track service. #12

parent 9799652a
No related branches found
No related tags found
No related merge requests found
......@@ -101,8 +101,8 @@ def list_playlog(from_date=None, to_date=None, page=None, limit=None, skip_synce
td = None
try:
fd = parse(from_date)
td = parse(to_date)
fd = util.deserialize_datetime(from_date)
td = util.deserialize_datetime(to_date)
except Exception:
service.logger.info("Invalid 'from_date' (%s) or 'to_date' (%s) for 'list_playlog'" % (str(from_date), str(to_date)))
......
......@@ -18,11 +18,15 @@ def current_track(): # noqa: E501
return service.current_track()
def list_tracks(page=None, limit=None): # noqa: E501
def list_tracks(from_date=None, to_date=None, page=None, limit=None): # noqa: E501
"""List recent tracks in the play-log
Lists the track-service entries for a given page. # noqa: E501
:param from_date: Get entries after this timestamp
:type from_date: str
:param to_date: Get entries before this timestamp
:type to_date: str
:param page: The number of items to skip before starting to collect the result set
:type page: int
:param limit: The numbers of items to return per page
......@@ -31,4 +35,13 @@ def list_tracks(page=None, limit=None): # noqa: E501
:rtype: List[Track]
"""
service = current_app.config['SERVICE']
return service.list_tracks(page, limit)
fd = None
td = None
try:
fd = util.deserialize_datetime(from_date)
td = util.deserialize_datetime(to_date)
except Exception:
service.logger.info("Invalid 'from_date' (%s) or 'to_date' (%s) for 'list_tracks'" % (str(from_date), str(to_date)))
return service.list_tracks(page, limit, fd, td)
\ No newline at end of file
......@@ -104,19 +104,20 @@ class ApiService():
return track_schema.dump(track)
def list_tracks(self, page=None, size=None):
def list_tracks(self, page=None, size=None, from_time=None, to_time=None):
"""
Lists track-service entries with pagination.
Args:
page (Integer): The number of the page to return
size (Integer): The numbers of items to return
from_time (datetime): Optionally, get entries after this timestamp (e.g. "2020-08-29T09:12:33.001Z")
to_time (datetime): Optionally, get entries before this timestamp (e.g. "2020-08-29T09:12:33.001Z")
Returns:
(JSON)
"""
if not size or size > 50 or size < 1: size = 20
tracklist = PlayLog.paginate(page, size, None, None, False)
tracklist = PlayLog.paginate(page, size, from_time, to_time, False)
tracklist_schema = TrackSchema(many=True)
return tracklist_schema.dump(tracklist)
......@@ -129,7 +130,7 @@ class ApiService():
page (Integer): The number of items to skip before starting to collect the result set
size (Integer): The numbers of items to return per page
from_time (datetime): Optionally, get entries after this timestamp (e.g. "2020-08-29T09:12:33.001Z")
from_time (datetime): Optionally, get entries before this timestamp (e.g. "2020-08-29T09:12:33.001Z")
to_time (datetime): Optionally, get entries before this timestamp (e.g. "2020-08-29T09:12:33.001Z")
skip_synced (Boolean): Optionally, don't return entries which have been posted directly before (sync node only)
Returns:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment