@@ -256,7 +256,7 @@ def __init__(
256256 self .garmin_connect_upload = "/upload-service/upload"
257257
258258 self .garmin_connect_gear = "/gear-service/gear/filterGear"
259- self .garmin_connect_gear_baseurl = "/gear-service/gear/ "
259+ self .garmin_connect_gear_baseurl = "/gear-service/gear"
260260
261261 self .garmin_request_reload_url = "/wellness-service/wellness/epoch/request"
262262
@@ -1855,13 +1855,13 @@ def get_gear(self, userProfileNumber: str) -> dict[str, Any]:
18551855 return self .connectapi (url )
18561856
18571857 def get_gear_stats (self , gearUUID : str ) -> dict [str , Any ]:
1858- url = f"{ self .garmin_connect_gear_baseurl } stats/{ gearUUID } "
1858+ url = f"{ self .garmin_connect_gear_baseurl } / stats/{ gearUUID } "
18591859 logger .debug ("Requesting gear stats for gearUUID %s" , gearUUID )
18601860 return self .connectapi (url )
18611861
18621862 def get_gear_defaults (self , userProfileNumber : str ) -> dict [str , Any ]:
18631863 url = (
1864- f"{ self .garmin_connect_gear_baseurl } user/"
1864+ f"{ self .garmin_connect_gear_baseurl } / user/"
18651865 f"{ userProfileNumber } /activityTypes"
18661866 )
18671867 logger .debug ("Requesting gear defaults for user %s" , userProfileNumber )
@@ -1873,7 +1873,7 @@ def set_gear_default(
18731873 defaultGearString = "/default/true" if defaultGear else ""
18741874 method_override = "PUT" if defaultGear else "DELETE"
18751875 url = (
1876- f"{ self .garmin_connect_gear_baseurl } { gearUUID } /"
1876+ f"{ self .garmin_connect_gear_baseurl } / { gearUUID } /"
18771877 f"activityType/{ activityType } { defaultGearString } "
18781878 )
18791879 return self .garth .request (method_override , "connectapi" , url , api = True )
@@ -2025,6 +2025,52 @@ def get_gear_activities(
20252025
20262026 return self .connectapi (url )
20272027
2028+ def add_gear_to_activity (
2029+ self , gearUUID : str , activity_id : int | str
2030+ ) -> dict [str , Any ]:
2031+ """
2032+ Associates gear with an activity. Requires a gearUUID and an activity_id
2033+
2034+ Args:
2035+ gearUUID: UID for gear to add to activity. Findable though the get_gear function
2036+ activity_id: Integer ID for the activity to add the gear to
2037+
2038+ Returns:
2039+ Dictionary containing information for the added gear
2040+ """
2041+
2042+ gearUUID = str (gearUUID )
2043+ activity_id = _validate_positive_integer (int (activity_id ), "activity_id" )
2044+
2045+ url = (
2046+ f"{ self .garmin_connect_gear_baseurl } /link/{ gearUUID } /activity/{ activity_id } "
2047+ )
2048+ logger .debug ("Linking gear %s to activity %s" , gearUUID , activity_id )
2049+
2050+ return self .garth .put ("connectapi" , url ).json ()
2051+
2052+ def remove_gear_from_activity (
2053+ self , gearUUID : str , activity_id : int | str
2054+ ) -> dict [str , Any ]:
2055+ """
2056+ Removes gear from an activity. Requires a gearUUID and an activity_id
2057+
2058+ Args:
2059+ gearUUID: UID for gear to remove from activity. Findable though the get_gear method.
2060+ activity_id: Integer ID for the activity to remove the gear from
2061+
2062+ Returns:
2063+ Dictionary containing information about the removed gear
2064+ """
2065+
2066+ gearUUID = str (gearUUID )
2067+ activity_id = _validate_positive_integer (int (activity_id ), "activity_id" )
2068+
2069+ url = f"{ self .garmin_connect_gear_baseurl } /unlink/{ gearUUID } /activity/{ activity_id } "
2070+ logger .debug ("Unlinking gear %s from activity %s" , gearUUID , activity_id )
2071+
2072+ return self .garth .put ("connectapi" , url ).json ()
2073+
20282074 def get_user_profile (self ) -> dict [str , Any ]:
20292075 """Get all users settings."""
20302076
0 commit comments