Skip to content

Commit 8020127

Browse files
authored
Merge pull request #323 from KopyWasTaken/master
Added nutrition service endpoints for daily food, meals, and settings
2 parents 918c8fd + 0f9ce25 commit 8020127

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

garminconnect/__init__.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,16 @@ def __init__(
279279

280280
self.garmin_workouts_schedule_url = f"{self.garmin_workouts}/schedule"
281281

282+
self.garmin_nutrition = "/nutrition-service"
283+
284+
self.garmin_connect_nutrition_daily_food_logs = (
285+
f"{self.garmin_nutrition}/food/logs"
286+
)
287+
self.garmin_connect_nutrition_daily_meals = f"{self.garmin_nutrition}/meals"
288+
self.garmin_connect_nutrition_daily_settings = (
289+
f"{self.garmin_nutrition}/settings"
290+
)
291+
282292
self.garmin_connect_delete_activity_url = "/activity-service/activity"
283293

284294
self.garmin_graphql_endpoint = "graphql-gateway/graphql"
@@ -2609,6 +2619,27 @@ def get_adaptive_training_plan_by_id(self, plan_id: int | str) -> dict[str, Any]
26092619
logger.debug("Requesting adaptive training plan details for %s", plan_id)
26102620
return self.connectapi(url)
26112621

2622+
def get_nutrition_daily_food_log(self, cdate: str) -> dict[str, Any]:
2623+
"""Return food log summary for 'cdate' format 'YYYY-MM-DD'."""
2624+
cdate = _validate_date_format(cdate, "cdate")
2625+
url = f"{self.garmin_connect_nutrition_daily_food_logs}/{cdate}"
2626+
logger.debug("Requesting nutrition food log data for date %s", cdate)
2627+
return self.connectapi(url)
2628+
2629+
def get_nutrition_daily_meals(self, cdate: str) -> dict[str, Any]:
2630+
"""Return meals summary for 'cdate' format 'YYYY-MM-DD'."""
2631+
cdate = _validate_date_format(cdate, "cdate")
2632+
url = f"{self.garmin_connect_nutrition_daily_meals}/{cdate}"
2633+
logger.debug("Requesting nutrition meals data for date %s", cdate)
2634+
return self.connectapi(url)
2635+
2636+
def get_nutrition_daily_settings(self, cdate: str) -> dict[str, Any]:
2637+
"""Return nutrition settings for 'cdate' format 'YYYY-MM-DD'."""
2638+
cdate = _validate_date_format(cdate, "cdate")
2639+
url = f"{self.garmin_connect_nutrition_daily_settings}/{cdate}"
2640+
logger.debug("Requesting nutrition settings data for date %s", cdate)
2641+
return self.connectapi(url)
2642+
26122643

26132644
class GarminConnectConnectionError(Exception):
26142645
"""Raised when communication ended in error."""

0 commit comments

Comments
 (0)