Skip to content

Commit

Permalink
fix: fixed fetching single event by ID
Browse files Browse the repository at this point in the history
  • Loading branch information
ErikBjare committed Mar 3, 2022
1 parent 6698a7a commit 76259fa
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 10 deletions.
10 changes: 7 additions & 3 deletions aw_server/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,15 @@ def delete_bucket(self, bucket_id: str) -> None:
def get_event(
self,
bucket_id: str,
event_id: str,
event_id: int,
) -> Event:
"""Get a single event from a bucket"""
logger.debug("Received get request for event in bucket '{}'".format(bucket_id))
return self.db[bucket_id].get(bucket_id)
logger.debug(
f"Received get request for event {event_id} in bucket '{bucket_id}'"
)
event = self.db[bucket_id].get_by_id(event_id)
if event:
return event.to_json_dict()

@check_bucket_exists
def get_events(
Expand Down
14 changes: 7 additions & 7 deletions aw_server/rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,19 +238,19 @@ def get(self, bucket_id):
return events, 200


@api.route("/0/buckets/<string:bucket_id>/events/<string:event_id>")
@api.route("/0/buckets/<string:bucket_id>/events/<int:event_id>")
class EventResource(Resource):
# For some reason this doesn't work with the JSONSchema variant
# Marshalling doesn't work with JSONSchema events
# @api.marshal_list_with(event)
@api.doc(model=event)
@copy_doc(ServerAPI.get_event)
def get(self, bucket_id, event_id):
events = current_app.api.get_event(bucket_id)
def get(self, bucket_id: str, event_id: int):
logger.debug(
f"Received get request for event with id '{event_id}' in bucket '{bucket_id}'"
)
events = current_app.api.get_event(bucket_id, event_id)
return events, 200

@copy_doc(ServerAPI.delete_event)
def delete(self, bucket_id, event_id):
def delete(self, bucket_id: str, event_id: int):
logger.debug(
"Received delete request for event with id '{}' in bucket '{}'".format(
event_id, bucket_id
Expand Down
17 changes: 17 additions & 0 deletions tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,23 @@ def test_insert_events(aw_client, bucket):
assert events == sorted(recv_events, key=lambda e: e.timestamp)


def test_get_event_single(aw_client, bucket):
start_dt = datetime.now(tz=timezone.utc) - timedelta(days=50)
delta = timedelta(hours=1)
events = _create_periodic_events(10, delta=delta, start=start_dt)

aw_client.insert_events(bucket, events)

events = aw_client.get_events(bucket)

for e in events:
e2 = aw_client.get_event(bucket, e.id)
assert e.id == e2.id
assert e.timestamp == e2.timestamp
assert e.duration == e2.duration
assert e.data == e2.data


def test_get_events_interval(aw_client, bucket):
start_dt = datetime.now(tz=timezone.utc) - timedelta(days=50)
end_dt = start_dt + timedelta(days=1)
Expand Down

0 comments on commit 76259fa

Please sign in to comment.