Skip to content

Commit d157d6f

Browse files
committed
udpated stats logic and route
1 parent adbbd33 commit d157d6f

2 files changed

Lines changed: 27 additions & 20 deletions

File tree

core/__init__.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -332,14 +332,14 @@ def hide_fishfry():
332332
#----------------------------------------------------------------------------
333333
# Route for the leaderboard
334334

335-
# @application.route('/leaderboard/<dt_start>/', methods=['GET'])
336-
# @application.route('/leaderboard/<dt_start>/<dt_end>', methods=['GET'])
335+
@application.route('/leaderboard/<dt_start>/', methods=['GET'])
336+
@application.route('/leaderboard/<dt_start>/<dt_end>', methods=['GET'])
337337
@application.route('/leaderboard/', methods=['GET'])
338338
@login_required
339-
def view_leaderboard():
340-
dt_start, dt_end = None, None
341-
dt_start = request.args.get("after")
342-
dt_end = request.args.get("before")
339+
def view_leaderboard(dt_start=None, dt_end=None):
340+
# dt_start, dt_end = None, None
341+
# dt_start = request.args.get("after")
342+
# dt_end = request.args.get("before")
343343
print(dt_start, dt_end)
344344
stats = get_stats(after_when=dt_start, before_when=dt_end)
345345
stats_json = json.dumps(stats)

core/api/db_interface.py

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,13 @@ def decimal_encoder(json_obj):
4040
return json.loads(json.dumps(json_obj, cls=DecimalEncoder))
4141

4242

43-
def _paginated_scan(ddb_table):
43+
def _paginated_scan(ddb_table, filter_exp=None):
4444
"""performs a paginated scan of the DynamoDB table
4545
"""
46-
47-
response = ddb_table.scan()
46+
if filter_exp:
47+
response = ddb_table.scan(FilterExpression=filter_exp)
48+
else:
49+
response = ddb_table.scan()
4850
data = response['Items']
4951
print(len(data))
5052

@@ -371,39 +373,44 @@ def get_stats(userid=None, after_when=None, before_when=None):
371373
response = None
372374

373375
if all([userid, after_when, before_when]):
374-
response = fishfry_stats.scan(
375-
FilterExpression=\
376+
response = _paginated_scan(
377+
ddb_table=fishfry_stats,
378+
filter_exp=\
376379
Attr('userid').contains(userid) & \
377380
Attr('when').gt(after_when) & \
378381
Attr('when').lt(before_when)
379382
)
380383

381384
elif all([after_when, before_when]) and not userid:
382-
response = fishfry_stats.scan(
383-
FilterExpression=\
385+
response = _paginated_scan(
386+
ddb_table=fishfry_stats,
387+
filter_exp=\
384388
Attr('when').gt(after_when) & \
385389
Attr('when').lt(before_when)
386390
)
387391

388392
elif after_when and not all([userid, before_when]):
389-
response = fishfry_stats.scan(
390-
FilterExpression=\
393+
response = _paginated_scan(
394+
ddb_table=fishfry_stats,
395+
filter_exp=\
391396
Attr('when').gt(after_when)
392397
)
393398
elif before_when and not all([userid, after_when]):
394-
response = fishfry_stats.scan(
395-
FilterExpression=\
399+
response = _paginated_scan(
400+
ddb_table=fishfry_stats,
401+
filter_exp=\
396402
Attr('when').lt(before_when)
397403
)
398404

399405
elif userid and not all([after_when, before_when]):
400-
response = fishfry_stats.scan(
401-
FilterExpression=Attr('userid').contains(userid)
406+
response = _paginated_scan(
407+
ddb_table=fishfry_stats,
408+
filter_exp=Attr('userid').contains(userid)
402409
)
403410

404411
else:
405412
# not all([userid, after_when, before_when]):
406-
response = fishfry_stats.scan()
413+
response = _paginated_scan(ddb_table=fishfry_stats)
407414

408415
tally = {}
409416

0 commit comments

Comments
 (0)