UA done
This commit is contained in:
@@ -28,7 +28,7 @@ from django.contrib.auth.decorators import login_required
|
||||
# from .models import Profile
|
||||
from rowingdata import rowingdata
|
||||
import pandas as pd
|
||||
from rowers.models import Rower,Workout
|
||||
from rowers.models import Rower,Workout,checkworkoutuser
|
||||
|
||||
from rowsandall_app.settings import (
|
||||
C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET,
|
||||
@@ -88,6 +88,20 @@ def custom_exception_handler(exc,message):
|
||||
|
||||
return res
|
||||
|
||||
# Checks if user has UnderArmour token, renews them if they are expired
|
||||
def underarmour_open(user):
|
||||
r = Rower.objects.get(user=user)
|
||||
if (r.underarmourtoken == '') or (r.underarmourtoken is None):
|
||||
s = "Token doesn't exist. Need to authorize"
|
||||
raise UnderArmourNoTokenError("User has no token")
|
||||
else:
|
||||
if (timezone.now()>r.underarmourtokenexpirydate):
|
||||
thetoken = underarmourstuff.rower_underarmour_token_refresh(user)
|
||||
else:
|
||||
thetoken = r.underarmourtoken
|
||||
|
||||
return thetoken
|
||||
|
||||
# Refresh ST token using refresh token
|
||||
def do_refresh_token(refreshtoken,access_token):
|
||||
client_auth = requests.auth.HTTPBasicAuth(UNDERARMOUR_CLIENT_KEY, UNDERARMOUR_CLIENT_SECRET)
|
||||
@@ -385,3 +399,55 @@ def get_userid(access_token):
|
||||
res = 0
|
||||
|
||||
return res
|
||||
|
||||
def workout_ua_upload(user,w):
|
||||
message = ""
|
||||
uaid = 0
|
||||
|
||||
r = w.user
|
||||
|
||||
thetoken = underarmour_open(r.user)
|
||||
|
||||
# ready to upload. Hurray
|
||||
|
||||
if (checkworkoutuser(user,w)):
|
||||
data = createunderarmourworkoutdata(w)
|
||||
# return HttpResponse(json.dumps(data))
|
||||
if not data:
|
||||
message = "Data error"
|
||||
uaid = 0
|
||||
return message, uaid
|
||||
|
||||
authorizationstring = str('Bearer ' + thetoken)
|
||||
headers = {'Authorization': authorizationstring,
|
||||
'Api-Key': UNDERARMOUR_CLIENT_KEY,
|
||||
'user-agent': 'sanderroosendaal',
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
|
||||
url = "https://api.ua.com/v7.1/workout/"
|
||||
response = requests.post(url,headers=headers,data=json.dumps(data))
|
||||
|
||||
# check for duplicate error first
|
||||
if (response.status_code == 409 ):
|
||||
message = "Duplicate error"
|
||||
w.uploadedtounderarmour = -1
|
||||
uaid = -1
|
||||
w.save()
|
||||
elif (response.status_code == 201 or response.status_code==200):
|
||||
uaid = getidfromresponse(response)
|
||||
w.uploadedtounderarmour = uaid
|
||||
w.save()
|
||||
return '',uaid
|
||||
else:
|
||||
s = response
|
||||
message = "Something went wrong in workout_underarmour_upload_view: %s - %s" % (s.reason,s.text)
|
||||
uaid = 0
|
||||
return message, uaid
|
||||
|
||||
else:
|
||||
message = "You are not authorized to upload this workout"
|
||||
uaid = 0
|
||||
return message, uaid
|
||||
|
||||
return message, uaid
|
||||
|
||||
@@ -60,6 +60,7 @@ import stravastuff
|
||||
from stravastuff import StravaNoTokenError
|
||||
import sporttracksstuff
|
||||
import underarmourstuff
|
||||
from underarmourstuff import UnderArmourNoTokenError,underarmour_open
|
||||
import tpstuff
|
||||
import runkeeperstuff
|
||||
import ownapistuff
|
||||
@@ -1035,19 +1036,6 @@ def add_workout_from_underarmourdata(user,importid,data):
|
||||
|
||||
|
||||
|
||||
# Checks if user has UnderArmour token, renews them if they are expired
|
||||
def underarmour_open(user):
|
||||
r = Rower.objects.get(user=user)
|
||||
if (r.underarmourtoken == '') or (r.underarmourtoken is None):
|
||||
s = "Token doesn't exist. Need to authorize"
|
||||
raise UnderarmourNoTokenError("User has no token")
|
||||
else:
|
||||
if (timezone.now()>r.underarmourtokenexpirydate):
|
||||
thetoken = underarmourstuff.rower_underarmour_token_refresh(user)
|
||||
else:
|
||||
thetoken = r.underarmourtoken
|
||||
|
||||
return thetoken
|
||||
|
||||
# Checks if user has UnderArmour token, renews them if they are expired
|
||||
def tp_open(user):
|
||||
@@ -1441,7 +1429,7 @@ def workout_underarmour_upload_view(request,id=0):
|
||||
|
||||
try:
|
||||
thetoken = underarmour_open(r.user)
|
||||
except UnderarmourNoTokenError:
|
||||
except UnderArmourNoTokenError:
|
||||
return HttpResponseRedirect("/rowers/me/underarmourauthorize/")
|
||||
|
||||
# ready to upload. Hurray
|
||||
@@ -5895,6 +5883,14 @@ def workout_upload_view(request,message="",
|
||||
)
|
||||
except RunKeeperNoTokenError:
|
||||
pass
|
||||
|
||||
if (upload_to_ua):
|
||||
try:
|
||||
uamessage,uaid = underarmourstuff.workout_ua_upload(
|
||||
request.user,w
|
||||
)
|
||||
except UnderArmourNoTokenError:
|
||||
pass
|
||||
|
||||
if message:
|
||||
url = reverse(workout_edit_view,
|
||||
|
||||
Reference in New Issue
Block a user