Skip to content

Commit f720de3

Browse files
committed
PR feedback
1 parent 0e1a6f5 commit f720de3

File tree

2 files changed

+23
-20
lines changed

2 files changed

+23
-20
lines changed

example.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -437,8 +437,6 @@ def switch(api, i):
437437
elif i == "i":
438438
# Get earned badges for user
439439
display_json("api.get_earned_badges()", api.get_earned_badges())
440-
# display_json("api.get_available_badges()", api.get_available_badges())
441-
# display_json("api.get_in_progress_badges()", api.get_in_progress_badges())
442440
elif i == "j":
443441
# Get adhoc challenges data from start and limit
444442
display_json(

garminconnect/__init__.py

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def __init__(
6868
)
6969
self.garmin_connect_earned_badges_url = "/badge-service/badge/earned"
7070
self.garmin_connect_available_badges_url = (
71-
"/badge-service/badge/available?showExclusiveBadge=true"
71+
"/badge-service/badge/available"
7272
)
7373
self.garmin_connect_adhoc_challenges_url = (
7474
"/adhocchallenge-service/adHocChallenge/historical"
@@ -724,15 +724,15 @@ def get_earned_badges(self) -> List[Dict[str, Any]]:
724724

725725
return self.connectapi(url)
726726

727-
def get_available_badges(self) -> List[Dict[str, Any]]:
727+
def get_available_badges(self) -> list[dict]:
728728
"""Return available badges for current user."""
729729

730730
url = self.garmin_connect_available_badges_url
731731
logger.debug("Requesting available badges for user")
732732

733-
return self.connectapi(url)
733+
return self.connectapi(url, params={"showExclusiveBadge": "true"})
734734

735-
def get_in_progress_badges(self) -> List[Dict[str, Any]]:
735+
def get_in_progress_badges(self) -> list[dict]:
736736
"""Return in progress badges for current user."""
737737

738738
logger.debug("Requesting in progress badges for user")
@@ -741,30 +741,35 @@ def get_in_progress_badges(self) -> List[Dict[str, Any]]:
741741
available_badges = self.get_available_badges()
742742

743743
# Filter out badges that are not in progress
744-
def badge_in_progress(badge):
744+
def is_badge_in_progress(badge: dict) -> bool:
745745
"""Return True if the badge is in progress."""
746-
if "badgeProgressValue" not in badge:
747-
return False
748-
if badge["badgeProgressValue"] is None:
746+
progress = badge.get("badgeProgressValue")
747+
if not progress:
749748
return False
750-
if badge["badgeProgressValue"] == 0:
749+
if progress == 0:
751750
return False
752-
if badge["badgeProgressValue"] == badge["badgeTargetValue"]:
753-
if (
754-
"badgeLimitCount" not in badge
755-
or badge["badgeLimitCount"] is None
756-
):
751+
target = badge.get("badgeTargetValue")
752+
if progress == target:
753+
if badge.get("badgeLimitCount") is None:
757754
return False
758-
return badge["badgeEarnedNumber"] < badge["badgeLimitCount"]
755+
return (
756+
badge.get("badgeEarnedNumber", 0)
757+
< badge["badgeLimitCount"]
758+
)
759759
return True
760760

761761
earned_in_progress_badges = list(
762-
filter(badge_in_progress, earned_badges)
762+
filter(is_badge_in_progress, earned_badges)
763763
)
764764
available_in_progress_badges = list(
765-
filter(badge_in_progress, available_badges)
765+
filter(is_badge_in_progress, available_badges)
766+
)
767+
768+
combined = {b["badgeId"]: b for b in earned_in_progress_badges}
769+
combined.update(
770+
{b["badgeId"]: b for b in available_in_progress_badges}
766771
)
767-
return earned_in_progress_badges + available_in_progress_badges
772+
return list(combined.values())
768773

769774
def get_adhoc_challenges(self, start, limit) -> Dict[str, Any]:
770775
"""Return adhoc challenges for current user."""

0 commit comments

Comments
 (0)