From 197d6c946408ddae0320e8a3f990bab9e70e07c1 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 23 Feb 2021 19:17:03 +0100 Subject: [PATCH] adding plannedsession write to fit --- rowers/models.py | 6 +++++- rowers/utils.py | 22 ++++++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 18fd9ae1..cb6cd912 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -482,7 +482,7 @@ class TeamRequest(models.Model): from rowers.utils import ( workflowleftpanel,workflowmiddlepanel, defaultleft,defaultmiddle,landingpages, - steps_read_fit + steps_read_fit, steps_write_fit ) from rowers.utils import geo_distance @@ -2378,6 +2378,10 @@ class PlannedSession(models.Model): steps = steps_read_fit(settings.MEDIA_ROOT+'/'+self.fitfile.name) self.steps_json = json.dumps(steps) + if self.steps_json and not self.fitfile: + fitfile = steps_write_fit(settings.MEDIA_ROOT+'/session_'+str(self.id)+'.fit',json.loads(self.steps_json)) + self.fitfile = fitfile + super(PlannedSession,self).save(*args, **kwargs) diff --git a/rowers/utils.py b/rowers/utils.py index 22a30a48..c7255283 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -546,9 +546,9 @@ def allsundays(startdate,enddate): def steps_read_fit(filename,name='',sport='Custom'): authorizationstring = 'Bearer '+settings.WORKOUTS_FIT_TOKEN - url = settings.WORKOUTS_FIT_URL + url = settings.WORKOUTS_FIT_URL+"/tojson" headers = {'Authorization':authorizationstring} - + response = requests.post(url=url,headers=headers,json={'filename':filename}) if response.status_code != 200: @@ -561,3 +561,21 @@ def steps_read_fit(filename,name='',sport='Custom'): return None return d + +def steps_write_fit(filename,steps): + authorizationstring = 'Bearer '+settings.WORKOUTS_FIT_TOKEN + url = settings.WORKOUTS_FIT_URL+"/tofit" + headers = {'Authorization':authorizationstring} + + response = requests.post(url=url,headers=headers,json=steps) + + if response.status_code != 200: + return None + + w = response.json() + try: + filename = w['filename'] + except KeyError: + return None + + return filename