Skip to content

Commit

Permalink
Garmin changed the endpoint for setting metadata
Browse files Browse the repository at this point in the history
Cribbed from cpfair/tapiriik:

    cpfair/tapiriik@e685dce
  • Loading branch information
dlenski committed Mar 28, 2018
1 parent 31974b0 commit eec4dcf
Showing 1 changed file with 12 additions and 16 deletions.
28 changes: 12 additions & 16 deletions garminexport/garminclient.py
Expand Up @@ -393,21 +393,17 @@ def upload_activity(self, file, format=None, name=None, description=None, activi
activity_id = j["successes"][0]["internalId"]

# add optional fields
fields = ( ('name',name,("display","value")),
('description',description,("display","value")),
('type',activity_type,("activityType","key")),
('privacy','private' if private else None,("definition","key")) )
for endpoint, value, path in fields:
if value is not None:
response = self.session.post("https://connect.garmin.com/proxy/activity-service-1.2/json/{}/{}".format(endpoint, activity_id),
data={'value':value})
if response.status_code != 200:
raise Exception(u"failed to set {} for activity {}: {}\n{}".format(
endpoint, activity_id, response.status_code, response.text))

j = response.json()
p0, p1 = path
if p0 not in j or j[p0][p1] != value:
raise Exception(u"failed to set {} for activity {}\n".format(endpoint, activity_id))
data = {}
if name is not None: data['activityName'] = name
if description is not None: data['description'] = name
if activity_type is not None: data['activityTypeDTO'] = {"typeKey": activity_type}
if private: data['privacy'] = {"typeKey": "private"}
if data:
data['activityId'] = activity_id
encoding_headers = {"Content-Type": "application/json; charset=UTF-8"} # see Tapiriik
response = self.session.put("https://connect.garmin.com/proxy/activity-service/activity/{}".format(activity_id), data=json.dumps(data), headers=encoding_headers)
if response.status_code != 204:
raise Exception(u"failed to set metadata for activity {}: {}\n{}".format(
activity_id, response.status_code, response.text))

return activity_id

0 comments on commit eec4dcf

Please sign in to comment.