From 9932ad7311d886f791c6e024bceafc9258874d22 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 17 Jan 2022 08:32:09 +0100 Subject: [PATCH] switching on Polar again --- rowers/admin.py | 2 +- rowers/management/commands/processemail.py | 2 +- rowers/polarstuff.py | 29 ++++++++++++--------- rowers/tests/testdata/testdata.tcx.gz | Bin 4000 -> 0 bytes 4 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 rowers/tests/testdata/testdata.tcx.gz diff --git a/rowers/admin.py b/rowers/admin.py index 46ee9a17..b16db095 100644 --- a/rowers/admin.py +++ b/rowers/admin.py @@ -30,7 +30,7 @@ class RowerInline(admin.StackedInline): ('Billing Details', {'fields':('street_address','city','postal_code','country','paymentprocessor','customer_id')}), ('Rower Plan', - {'fields':('paidplan','rowerplan','paymenttype','planexpires','teamplanexpires','protrialexpires','plantrialexpires','clubsize','offercoaching')}), + {'fields':('paidplan','rowerplan','paymenttype','planexpires','teamplanexpires','protrialexpires','plantrialexpires','eurocredits','clubsize','offercoaching')}), ('Rower Settings', {'fields': ('surveydone','surveydonedate','gdproptin','gdproptindate','weightcategory','sex','adaptiveclass','birthdate','getemailnotifications', diff --git a/rowers/management/commands/processemail.py b/rowers/management/commands/processemail.py index 1ded8fb6..73ef5f40 100644 --- a/rowers/management/commands/processemail.py +++ b/rowers/management/commands/processemail.py @@ -88,7 +88,7 @@ class Command(BaseCommand): # Polar try: polar_available = polarstuff.get_polar_notifications() - # res = polarstuff.get_all_new_workouts(polar_available) + res = polarstuff.get_all_new_workouts(polar_available) except: # pragma: no cover exc_type, exc_value, exc_traceback = sys.exc_info() lines = traceback.format_exception(exc_type, exc_value, exc_traceback) diff --git a/rowers/polarstuff.py b/rowers/polarstuff.py index 937d59ca..79d46800 100644 --- a/rowers/polarstuff.py +++ b/rowers/polarstuff.py @@ -70,7 +70,7 @@ from rowers.utils import NoTokenError, custom_exception_handler import rowers.mytypes as mytypes # Exchange access code for long-lived access token -def get_token(code): # pragma: no cover +def get_token(code): post_data = {"grant_type": "authorization_code", "code": code, @@ -106,7 +106,7 @@ def get_token(code): # pragma: no cover return [thetoken,expires_in,user_id] # Make authorization URL including random string -def make_authorization_url(): # pragma: no cover +def make_authorization_url(): # Generate a random string for the state parameter # Save it for use later to prevent xsrf attacks state = str(uuid4()) @@ -121,7 +121,7 @@ def make_authorization_url(): # pragma: no cover return HttpResponseRedirect(url) -def get_polar_notifications(): # pragma: no cover +def get_polar_notifications(): url = baseurl+'/notifications' state = str(uuid4()) auth_string = '{id}:{secret}'.format( @@ -137,7 +137,7 @@ def get_polar_notifications(): # pragma: no cover try: response = requests.get(url, headers=headers) - except ConnectionError: # pragma: no cover + except ConnectionError: response = { 'status_code':400, } @@ -160,7 +160,7 @@ def get_polar_notifications(): # pragma: no cover from rowers.rower_rules import ispromember def get_all_new_workouts(available_data,testing=False): - for record in available_data: # pragma: no cover + for record in available_data: dologging('polar.log',str(record)) if testing: print(record) @@ -176,7 +176,7 @@ def get_all_new_workouts(available_data,testing=False): except Rower.DoesNotExist: pass - return 1 # pragma: no cover + return 1 def get_polar_workouts(user): @@ -187,11 +187,11 @@ def get_polar_workouts(user): if (r.polartoken == '') or (r.polartoken is None): s = "Token doesn't exist. Need to authorize" return custom_exception_handler(401,s) - elif (timezone.now()>r.polartokenexpirydate): # pragma: no cover + elif (timezone.now()>r.polartokenexpirydate): s = "Token expired. Needs to refresh" dologging('polar.log',s) return custom_exception_handler(401,s) - else: # pragma: no cover + else: authorizationstring = str('Bearer ' + r.polartoken) headers = {'Authorization':authorizationstring, 'Accept': 'application/json'} @@ -299,11 +299,16 @@ def get_polar_workouts(user): dologging('polar.log',str(exercise_dict)) # commit transaction - #requests.put(url, headers=headers) + url = baseurl+'/users/{userid}/exercise-transactions/{transactionid}'.format( + transactionid = transactionid, + userid = r.polaruserid + ) + requests.put(url, headers=headers) + dologging('polar.log','Committed transation at {url}'.format(url=url)) - return exercise_list # pragma: no cover + return exercise_list -def get_polar_user_info(user,physical=False): # pragma: no cover +def get_polar_user_info(user,physical=False): r = Rower.objects.get(user=user) if (r.polartoken == '') or (r.polartoken is None): s = "Token doesn't exist. Need to authorize" @@ -341,7 +346,7 @@ def get_polar_user_info(user,physical=False): # pragma: no cover return response -def get_polar_workout(user,id,transactionid): # pragma: no cover +def get_polar_workout(user,id,transactionid): r = Rower.objects.get(user=user) if (r.polartoken == '') or (r.polartoken is None): diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz deleted file mode 100644 index 32e9395d68794b834a93e2303fb4c8b0e15331fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4000 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 GfB^tt@jVRy