Private
Public Access
1
0

Finishing light comments and cleanup

This commit is contained in:
Sander Roosendaal
2017-01-16 17:35:39 +01:00
parent 5f551528da
commit ef7cd92415
4 changed files with 71 additions and 88 deletions

View File

@@ -1,3 +1,5 @@
# All the functionality to connect to SportTracks
# Python
import oauth2 as oauth
import cgi
@@ -31,6 +33,8 @@ from rowers.models import Rower,Workout
from rowsandall_app.settings import C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET, STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET, SPORTTRACKS_CLIENT_SECRET, SPORTTRACKS_CLIENT_ID, SPORTTRACKS_REDIRECT_URI
# Custom exception handler, returns a 401 HTTP message
# with exception details in the json data
def custom_exception_handler(exc,message):
response = {
@@ -48,6 +52,7 @@ def custom_exception_handler(exc,message):
return res
# Refresh ST token using refresh token
def do_refresh_token(refreshtoken):
client_auth = requests.auth.HTTPBasicAuth(SPORTTRACKS_CLIENT_ID, SPORTTRACKS_CLIENT_SECRET)
post_data = {"grant_type": "refresh_token",
@@ -75,7 +80,7 @@ def do_refresh_token(refreshtoken):
return [thetoken,expires_in,refresh_token]
# Exchange ST access code for long-lived ST access token
def get_token(code):
client_auth = requests.auth.HTTPBasicAuth(SPORTTRACKS_CLIENT_ID, SPORTTRACKS_CLIENT_SECRET)
post_data = {"grant_type": "authorization_code",
@@ -100,6 +105,7 @@ def get_token(code):
return [thetoken,expires_in,refresh_token]
# Make authorization URL including random string
def make_authorization_url(request):
# Generate a random string for the state parameter
# Save it for use later to prevent xsrf attacks
@@ -118,7 +124,7 @@ def make_authorization_url(request):
return HttpResponseRedirect(url)
# This is token refresh. Looks for tokens in our database, then refreshes
def rower_sporttracks_token_refresh(user):
r = Rower.objects.get(user=user)
res = do_refresh_token(r.sporttracksrefreshtoken)
@@ -135,6 +141,7 @@ def rower_sporttracks_token_refresh(user):
r.save()
return r.sporttrackstoken
# Get list of workouts available on SportTracks
def get_sporttracks_workout_list(user):
r = Rower.objects.get(user=user)
if (r.sporttrackstoken == '') or (r.sporttrackstoken is None):
@@ -154,7 +161,7 @@ def get_sporttracks_workout_list(user):
return s
# Get workout summary data by SportTracks ID
def get_sporttracks_workout(user,sporttracksid):
r = Rower.objects.get(user=user)
if (r.sporttrackstoken == '') or (r.sporttrackstoken is None):
@@ -174,6 +181,7 @@ def get_sporttracks_workout(user,sporttracksid):
return s
# Create Workout Data for upload to SportTracks
def createsporttracksworkoutdata(w):
filename = w.csvfilename
try:
@@ -272,6 +280,8 @@ def createsporttracksworkoutdata(w):
return data
# Obtain SportTracks Workout ID from the response returned on successful
# upload
def getidfromresponse(response):
t = json.loads(response.text)
uri = t['uris'][0]