diff --git a/src/models.py b/src/models.py index 653cd17406f90df98e6a591f57cdc2e3eaee3c87..9f315565020a3150b75fee126705bd245c06a503 100644 --- a/src/models.py +++ b/src/models.py @@ -94,12 +94,12 @@ class PlayLog(db.Model): def q(page=0, page_size=None): query = db.session.query(PlayLog).order_by(PlayLog.track_start.desc()) if isinstance(from_time, datetime.datetime): - if isinstance(from_time, datetime.datetime): + if isinstance(to_time, datetime.datetime): query = query.filter(PlayLog.track_start >= from_time and PlayLog.track_start < to_time) else: query = query.filter(PlayLog.track_start >= from_time) if skip_synced == True: - query = query.filter(PlayLog.is_synced == False) + query = query.filter(not PlayLog.is_synced) listen(query, 'before_compile', apply_limit(page, page_size), retval=True) return query diff --git a/src/rest/controllers/internal_controller.py b/src/rest/controllers/internal_controller.py index e545aab5cee9d344ef97edf05f663c36a4a4c02f..85dee7f5b019b68bea66e5d208a8c5700c4c42f5 100644 --- a/src/rest/controllers/internal_controller.py +++ b/src/rest/controllers/internal_controller.py @@ -77,7 +77,7 @@ def get_source_health(number): # noqa: E501 return service.get_source_health(number) -def list_playlog(from_date=None, to_dat=None, page=None, limit=None, skip_synced=None): # noqa: E501 +def list_playlog(from_date=None, to_date=None, page=None, limit=None, skip_synced=None): # noqa: E501 """List tracks in the play-log since the given timestamp Get paginated playlog entries for since the given timestamp. # noqa: E501 @@ -94,9 +94,16 @@ def list_playlog(from_date=None, to_dat=None, page=None, limit=None, skip_synced :rtype: List[PlayLog] """ service = current_app.config['SERVICE'] - from_date = parse(from_date) - to_date = parse(to_date) - return service.list_playlog(page, limit, from_date, to_date, skip_synced) + fd = None + td = None + + try: + fd = parse(from_date) + td = parse(to_date) + except Exception: + service.logger.info("Invalid 'from_date' (%s) or 'to_date' (%s) for 'list_playlog'" % (str(from_date), str(to_date))) + + return service.list_playlog(page, limit, fd, td, skip_synced) def log_source_health(body, number): # noqa: E501 diff --git a/src/rest/swagger/swagger.yaml b/src/rest/swagger/swagger.yaml index 42ac6c2d67fbaad2294005da38a80a0f1a4a036b..3a0d71d86f903fc5766a6d8e0b0d90bfc5150fe1 100644 --- a/src/rest/swagger/swagger.yaml +++ b/src/rest/swagger/swagger.yaml @@ -146,19 +146,19 @@ paths: Get paginated playlog entries for since the given timestamp. operationId: list_playlog parameters: - - name: from + - name: from_date in: query description: Get entries after this timestamp - required: true + required: false style: form explode: true schema: type: string example: 2020-08-29T09:12:33.001Z - - name: to + - name: to_date in: query description: Get entries before this timestamp - required: true + required: false style: form explode: true schema: diff --git a/src/rest/test/test_internal_controller.py b/src/rest/test/test_internal_controller.py index 8a1dbbcf27167fd12da13e8e6a9c7fdb15516f18..bc70005d36723b71cb68aa180dc0da86bd2f7ac5 100644 --- a/src/rest/test/test_internal_controller.py +++ b/src/rest/test/test_internal_controller.py @@ -96,11 +96,11 @@ class TestInternalController(BaseTestCase): List tracks in the play-log since the given timestamp """ - query_string = [('page', 56), + query_string = [('from_date', '2020-09-29T09:12:33.001Z'), + ('to_date', '2020-11-29T09:12:33.001Z'), + ('page', 56), ('limit', 200), - ('skip_synced', true), - ('from', '2020-08-15T15:40:44'), - ('to', '2020-10-15T15:40:44'))] + ('skip_synced', true)] response = self.client.open( '/api/v1/playlog/', method='GET',