Private
Public Access
1
0

Some error tracking with C2 log

This commit is contained in:
Sander Roosendaal
2016-12-18 15:03:48 +01:00
parent f4fc9b67be
commit a0a6d205cb
2 changed files with 51 additions and 57 deletions

View File

@@ -22,6 +22,7 @@ from rowingdata import rowingdata
import pandas as pd import pandas as pd
import numpy as np import numpy as np
from rowers.models import Rower,Workout from rowers.models import Rower,Workout
import sys
from rowsandall_app.settings import C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET from rowsandall_app.settings import C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET
@@ -243,9 +244,16 @@ def do_refresh_token(refreshtoken):
headers=headers) headers=headers)
token_json = response.json() token_json = response.json()
thetoken = token_json['access_token'] try:
expires_in = token_json['expires_in'] thetoken = token_json['access_token']
refresh_token = token_json['refresh_token'] expires_in = token_json['expires_in']
refresh_token = token_json['refresh_token']
except:
with open("media/c2errors.log","a") as errorlog:
errorlog.write("Unexpected Error: "+str(sys.exc_info()[0]))
thetoken = None
expires_in = None
refresh_token = None
return [thetoken,expires_in,refresh_token] return [thetoken,expires_in,refresh_token]

View File

@@ -748,7 +748,11 @@ def c2_open(user):
# return HttpResponseRedirect("/rowers/me/c2authorize/") # return HttpResponseRedirect("/rowers/me/c2authorize/")
else: else:
if (timezone.now()>r.tokenexpirydate): if (timezone.now()>r.tokenexpirydate):
thetoken = c2stuff.rower_c2_token_refresh(user) res = c2stuff.rower_c2_token_refresh(user)
if res[0] != None:
thetoken = res[0]
else:
thetoken = r.c2token
else: else:
thetoken = r.c2token thetoken = r.c2token
@@ -967,8 +971,13 @@ def workout_c2_upload_view(request,id=0):
'user-agent': 'sanderroosendaal', 'user-agent': 'sanderroosendaal',
'Content-Type': 'application/json'} 'Content-Type': 'application/json'}
import urllib import urllib
url = "https://log.concept2.com/api/users/%s/results" % (c2userid) try:
response = requests.post(url,headers=headers,data=json.dumps(data)) url = "https://log.concept2.com/api/users/%s/results" % (c2userid)
response = requests.post(url,headers=headers,data=json.dumps(data))
except:
message = "Unexpected Error: "+sys.exc_info()[0]
with open("media/c2errors.log","a") as errorlog:
errorlog.write("Unexpected Error: "+sys.exc_info()[0])
# check for duplicate error first # check for duplicate error first
if (response.status_code == 409 ): if (response.status_code == 409 ):
@@ -984,10 +993,15 @@ def workout_c2_upload_view(request,id=0):
url = "/rowers/workout/"+str(w.id)+"/export" url = "/rowers/workout/"+str(w.id)+"/export"
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
except: except:
message = "Something went wrong in workout_c2_upload_view. Response code 200/201 but C2 sync failed: "+response.text message = "Something went wrong in workout_c2_upload_view. Response code 200/201 but C2 sync failed: "+response.text
with open("media/c2errors.log","a") as errorlog:
errorlog.write("Unexpected Error: "+sys.exc_info()[0])
else: else:
s = response s = response
message = "Something went wrong in workout_c2_upload_view. C2 sync failed." message = "Something went wrong in workout_c2_upload_view. C2 sync failed."
with open("media/c2errors.log","a") as errorlog:
errorlog.write("Unexpected Error: "+response.text())
else: else:
message = "You are not authorized to upload this workout" message = "You are not authorized to upload this workout"
@@ -1104,20 +1118,25 @@ def rower_sporttracks_authorize(request):
def rower_c2_token_refresh(request): def rower_c2_token_refresh(request):
r = Rower.objects.get(user=request.user) r = Rower.objects.get(user=request.user)
res = c2stuff.do_refresh_token(r.c2refreshtoken) res = c2stuff.do_refresh_token(r.c2refreshtoken)
access_token = res[0] if res[0] != None:
expires_in = res[1] access_token = res[0]
refresh_token = res[2] expires_in = res[1]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in) refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=request.user)
r.c2token = access_token
r.tokenexpirydate = expirydatetime
r.c2refreshtoken = refresh_token
r = Rower.objects.get(user=request.user) r.save()
r.c2token = access_token
r.tokenexpirydate = expirydatetime
r.c2refreshtoken = refresh_token
r.save() successmessage = "Tokens refreshed. Good to go"
message = ""
successmessage = "Tokens refreshed. Good to go" else:
return imports_view(request,successmessage=successmessage) successmessage = ""
message = "Something went wrong (refreshing tokens). Please reauthorize:"
return imports_view(request,successmessage=successmessage,message=message)
@login_required() @login_required()
def rower_sporttracks_token_refresh(request): def rower_sporttracks_token_refresh(request):
@@ -3499,13 +3518,6 @@ def c2listdebug_view(request,message=""):
return HttpResponseRedirect("/rowers/me/c2authorize/") return HttpResponseRedirect("/rowers/me/c2authorize/")
r = Rower.objects.get(user=request.user) r = Rower.objects.get(user=request.user)
#if (r.c2token == '') or (r.c2token is None):
#s = "Token doesn't exist. Need to authorize"
#return HttpResponseRedirect("/rowers/me/c2authorize/")
#elif (timezone.now()>r.tokenexpirydate):
#s = "Token expired. Needs to refresh."
#res = c2stuff.rower_c2_token_refresh(request.user)
res = c2stuff.get_c2_workout_list(request.user) res = c2stuff.get_c2_workout_list(request.user)
@@ -3548,15 +3560,6 @@ def workout_c2import_view(request,message=""):
except C2NoTokenError: except C2NoTokenError:
return HttpResponseRedirect("/rowers/me/c2authorize/") return HttpResponseRedirect("/rowers/me/c2authorize/")
#r = Rower.objects.get(user=request.user)
#if (r.c2token == '') or (r.c2token is None):
#s = "Token doesn't exist. Need to authorize"
#return HttpResponseRedirect("/rowers/me/c2authorize/")
#elif (timezone.now()>r.tokenexpirydate):
#s = "Token expired. Needs to refresh."
#res = c2stuff.rower_c2_token_refresh(request.user)
res = c2stuff.get_c2_workout_list(request.user) res = c2stuff.get_c2_workout_list(request.user)
if (res.status_code != 200): if (res.status_code != 200):
@@ -3617,6 +3620,11 @@ def workout_getsporttracksworkout_view(request,sporttracksid):
@login_required() @login_required()
def workout_getc2workout_view(request,c2id): def workout_getc2workout_view(request,c2id):
try:
thetoken = c2_open(request.user)
except C2NoTokenError:
return HttpResponseRedirect("/rowers/me/c2authorize/")
res = c2stuff.get_c2_workout(request.user,c2id) res = c2stuff.get_c2_workout(request.user,c2id)
if (res.status_code == 200): if (res.status_code == 200):
data = res.json()['data'] data = res.json()['data']
@@ -3913,16 +3921,6 @@ def workout_upload_view(request,message=""):
thetoken = c2_open(request.user) thetoken = c2_open(request.user)
except C2NoTokenError: except C2NoTokenError:
return HttpResponseRedirect("/rowers/me/c2authorize/") return HttpResponseRedirect("/rowers/me/c2authorize/")
#r = Rower.objects.get(user=request.user)
#if (r.c2token == '') or (r.c2token is None):
# s = "Token doesn't exist. Need to authorize"
#return HttpResponseRedirect("/rowers/me/c2authorize/")
#elif (timezone.now()>r.tokenexpirydate):
#s = "Token expired. Needs to refresh."
#res = c2stuff.rower_c2_token_refresh(request.user)
try: try:
c2userid = c2stuff.get_userid(thetoken) c2userid = c2stuff.get_userid(thetoken)
@@ -4146,9 +4144,6 @@ def workout_upload_view_debug(request,message=""):
i = GraphImage(workout=w, i = GraphImage(workout=w,
creationdatetime=timezone.now(), creationdatetime=timezone.now(),
filename=fullpathimagename) filename=fullpathimagename)
# i = GraphImage(workout=w,
# creationdatetime=datetime.datetime.now(),
# filename=fullpathimagename)
i.save() i.save()
# upload to C2 # upload to C2
@@ -4158,15 +4153,6 @@ def workout_upload_view_debug(request,message=""):
except C2NoTokenError: except C2NoTokenError:
return HttpResponseRedirect("/rowers/me/c2authorize/") return HttpResponseRedirect("/rowers/me/c2authorize/")
#r = Rower.objects.get(user=request.user)
#if (r.c2token == '') or (r.c2token is None):
# s = "Token doesn't exist. Need to authorize"
#return HttpResponseRedirect("/rowers/me/c2authorize/")
#elif (timezone.now()>r.tokenexpirydate):
#s = "Token expired. Needs to refresh."
#res = c2stuff.rower_c2_token_refresh(request.user)
try: try:
response = c2stuff.workout_c2_upload(request.user,w) response = c2stuff.workout_c2_upload(request.user,w)
if (response.status_code != 201): if (response.status_code != 201):