|
18 | 18 | from fitbit_client.utils.pagination_validation import validate_pagination_params |
19 | 19 | from fitbit_client.utils.types import JSONDict |
20 | 20 | from fitbit_client.utils.types import JSONList |
| 21 | +from fitbit_client.utils.types import ParamDict |
21 | 22 |
|
22 | 23 |
|
23 | 24 | class ActivityResource(BaseResource): |
@@ -88,7 +89,7 @@ def create_activity_goals( |
88 | 89 | field_name="value", |
89 | 90 | ) |
90 | 91 |
|
91 | | - params = {"type": type.value, "value": value} |
| 92 | + params: ParamDict = {"type": type.value, "value": value} |
92 | 93 | result = self._make_request( |
93 | 94 | f"activities/goals/{period.value}.json", |
94 | 95 | params=params, |
@@ -152,24 +153,26 @@ def create_activity_log( |
152 | 153 | - Start time should be in 24-hour format (e.g., "14:30" for 2:30 PM) |
153 | 154 | """ |
154 | 155 | if activity_id: |
155 | | - params = { |
| 156 | + activity_params: ParamDict = { |
156 | 157 | "activityId": activity_id, |
157 | 158 | "startTime": start_time, |
158 | 159 | "durationMillis": duration_millis, |
159 | 160 | "date": date, |
160 | 161 | } |
161 | 162 | if distance is not None: |
162 | | - params["distance"] = distance |
| 163 | + activity_params["distance"] = distance |
163 | 164 | if distance_unit: |
164 | | - params["distanceUnit"] = distance_unit |
| 165 | + activity_params["distanceUnit"] = distance_unit |
| 166 | + params = activity_params |
165 | 167 | elif activity_name and manual_calories: |
166 | | - params = { |
| 168 | + name_params: ParamDict = { |
167 | 169 | "activityName": activity_name, |
168 | 170 | "manualCalories": manual_calories, |
169 | 171 | "startTime": start_time, |
170 | 172 | "durationMillis": duration_millis, |
171 | 173 | "date": date, |
172 | 174 | } |
| 175 | + params = name_params |
173 | 176 | else: |
174 | 177 | raise MissingParameterException( |
175 | 178 | message="Must provide either activity_id or (activity_name and manual_calories)", |
@@ -229,7 +232,7 @@ def get_activity_log_list( |
229 | 232 | - The source field indicates whether the activity was logged manually by the user |
230 | 233 | or automatically by a Fitbit device |
231 | 234 | """ |
232 | | - params = {"sort": sort.value, "limit": limit, "offset": offset} |
| 235 | + params: ParamDict = {"sort": sort.value, "limit": limit, "offset": offset} |
233 | 236 | if before_date: |
234 | 237 | params["beforeDate"] = before_date |
235 | 238 | if after_date: |
@@ -651,7 +654,9 @@ def get_activity_tcx( |
651 | 654 | - Not all activities have TCX data available (e.g., manually logged activities) |
652 | 655 | - To check if an activity has GPS data, look for hasGps=True in the activity log |
653 | 656 | """ |
654 | | - params = {"includePartialTCX": include_partial_tcx} if include_partial_tcx else None |
| 657 | + params: Optional[ParamDict] = ( |
| 658 | + {"includePartialTCX": include_partial_tcx} if include_partial_tcx else None |
| 659 | + ) |
655 | 660 | result = self._make_request( |
656 | 661 | f"activities/{log_id}.tcx", params=params, user_id=user_id, debug=debug |
657 | 662 | ) |
|
0 commit comments