Merge branch 'release/v18.6.4'
This commit is contained in:
@@ -82,16 +82,26 @@ import rowers.rowing_workout_metrics_pb2 as metrics_pb2
|
||||
import rowers.rowing_workout_metrics_pb2_grpc as metrics_pb2_grpc
|
||||
|
||||
from django.conf import settings
|
||||
SITE_URL = settings.SITE_URL
|
||||
SITE_URL_DEV = settings.SITE_URL
|
||||
PROGRESS_CACHE_SECRET = settings.PROGRESS_CACHE_SECRET
|
||||
SETTINGS_NAME = settings.SETTINGS_NAME
|
||||
|
||||
UPLOAD_SERVICE_URL = settings.UPLOAD_SERVICE_URL
|
||||
UPLOAD_SERVICE_SECRET = settings.UPLOAD_SERVICE_SECRET
|
||||
NK_API_LOCATION = settings.NK_API_LOCATION
|
||||
TP_CLIENT_ID = settings.TP_CLIENT_ID
|
||||
TP_CLIENT_SECRET = settings.TP_CLIENT_SECRET
|
||||
# extra read of config
|
||||
|
||||
SITE_URL = CFG['site_url']
|
||||
SITE_URL_DEV = CFG['site_url']
|
||||
PROGRESS_CACHE_SECRET = CFG['progress_cache_secret']
|
||||
SETTINGS_NAME = CFG['settings_name']
|
||||
|
||||
try:
|
||||
UPLOAD_SERVICE_URL = CFG['upload_service_url']
|
||||
except KeyError: # pragma: no cover
|
||||
UPLOAD_SERVICE_URL = "http://localhost:8000/rowers/workout/api/upload/"
|
||||
try:
|
||||
UPLOAD_SERVICE_SECRET = CFG['upload_service_secret']
|
||||
except KeyError: # pragma: no cover
|
||||
UPLOAD_SERVICE_SECRET = "FoYezZWLSyfAVimumpHEeYsJjsNCerxV"
|
||||
|
||||
NK_API_LOCATION = CFG["nk_api_location"]
|
||||
TP_CLIENT_ID = CFG["tp_client_id"]
|
||||
TP_CLIENT_SECRET = CFG["tp_client_secret"]
|
||||
|
||||
from requests_oauthlib import OAuth1, OAuth1Session
|
||||
|
||||
@@ -1204,7 +1214,10 @@ def handle_calctrimp(id,
|
||||
if hrtss > 1000: # pragma: no cover
|
||||
hrtss = 0
|
||||
|
||||
workout = Workout.objects.get(id=id)
|
||||
try:
|
||||
workout = Workout.objects.get(id=id)
|
||||
except Workout.DoesNotExist:
|
||||
return 0
|
||||
workout.rscore = int(tss)
|
||||
workout.normp = int(normp)
|
||||
workout.trimp = int(trimp)
|
||||
|
||||
@@ -125,9 +125,7 @@ def strokedatajson_v2(request, id):
|
||||
if request.method == 'GET':
|
||||
columns = ['spm', 'time', 'hr', 'pace', 'power', 'distance']
|
||||
datadf = dataprep.getsmallrowdata_db(columns, ids=[id])
|
||||
with open('apilog.log', 'a') as logfile:
|
||||
logfile.write(str(timezone.now())+": ")
|
||||
logfile.write(request.user.username+"(strokedatajson_v2 GET) \n")
|
||||
dologging('apilog.log',request.user.username+"(strokedatajson_v2 GET)")
|
||||
|
||||
data = datadf.to_json(orient='records')
|
||||
data2 = json.loads(data)
|
||||
@@ -136,22 +134,16 @@ def strokedatajson_v2(request, id):
|
||||
return JSONResponse(data2)
|
||||
|
||||
if request.method == 'POST':
|
||||
with open('apilog.log', 'a') as logfile:
|
||||
logfile.write(str(timezone.now())+": ")
|
||||
logfile.write(request.user.username+" (strokedatajson_v2 POST) \n")
|
||||
dologging('apilog.log',request.user.username+" (strokedatajson_v2 POST)")
|
||||
try:
|
||||
for d in request.data['data']:
|
||||
dologging('apilog.log',json.dumps(d))
|
||||
except KeyError:
|
||||
try:
|
||||
for d in request.data['data']:
|
||||
logfile.write(json.dumps(d))
|
||||
logfile.write("\n")
|
||||
except KeyError: # pragma: no cover
|
||||
try:
|
||||
for d in request.data['strokedata']:
|
||||
logfile.write(json.dumps(d))
|
||||
logfile.write("\n")
|
||||
except KeyError:
|
||||
logfile.write("No data in request.data\n")
|
||||
except (AttributeError, TypeError): # pragma: no cover
|
||||
logfile.write("No data in request\n")
|
||||
for d in request.data['strokedata']:
|
||||
dologging('apilog.log',json.dumps(d))
|
||||
except KeyError:
|
||||
dologging('apilog.log','No data in request.data')
|
||||
checkdata, r = dataprep.getrowdata_db(id=row.id)
|
||||
if not checkdata.empty: # pragma: no cover
|
||||
return HttpResponse("Duplicate Error", status=409)
|
||||
@@ -272,10 +264,7 @@ def strokedatajson_v2(request, id):
|
||||
starttime = totimestamp(row.startdatetime)+time[0]
|
||||
unixtime = starttime+time
|
||||
|
||||
with open('apilog.log', 'a') as logfile:
|
||||
logfile.write(str(arrow.get(starttime).datetime)+": ")
|
||||
logfile.write(request.user.username +
|
||||
"(strokedatajson_v2 POST - data parsed) \r\n")
|
||||
dologging('apilog.log',"(strokedatajson_v2 POST - data parsed)")
|
||||
|
||||
data = pd.DataFrame({'TimeStamp (sec)': unixtime,
|
||||
' Horizontal (meters)': distance,
|
||||
@@ -355,10 +344,7 @@ def strokedatajson_v2(request, id):
|
||||
|
||||
_ = uploads.do_sync(row, {}, quick=True)
|
||||
|
||||
with open('apilog.log', 'a') as logfile:
|
||||
logfile.write(str(timezone.now())+": ")
|
||||
logfile.write(request.user.username +
|
||||
" (strokedatajson_v2 POST completed successfully) \n")
|
||||
dologging('apilog.log'," (strokedatajson_v2 POST completed successfully)")
|
||||
|
||||
return(JsonResponse(
|
||||
{"workout public id": encoder.encode_hex(row.id),
|
||||
@@ -393,15 +379,11 @@ def strokedatajson(request, id=0):
|
||||
# currently only returns a subset.
|
||||
columns = ['spm', 'time', 'hr', 'pace', 'power', 'distance']
|
||||
datadf = dataprep.getsmallrowdata_db(columns, ids=[id])
|
||||
with open('apilog.log', 'a') as logfile:
|
||||
logfile.write(str(timezone.now())+": ")
|
||||
logfile.write(request.user.username+"(strokedatajson GET) \n")
|
||||
dologging("apilog.log",request.user.username+"(strokedatajson GET) ")
|
||||
return JSONResponse(datadf)
|
||||
|
||||
if request.method == 'POST':
|
||||
with open('apilog.log', 'a') as logfile:
|
||||
logfile.write(str(timezone.now())+": ")
|
||||
logfile.write(request.user.username+"(strokedatajson POST) \n")
|
||||
dologging("apilog.log",request.user.username+"(strokedatajson POST)")
|
||||
checkdata, r = dataprep.getrowdata_db(id=row.id)
|
||||
if not checkdata.empty: # pragma: no cover
|
||||
return HttpResponse("Duplicate Error", status=409)
|
||||
@@ -461,9 +443,7 @@ def strokedatajson(request, id=0):
|
||||
starttime = totimestamp(row.startdatetime)+time[0]
|
||||
unixtime = starttime+time
|
||||
|
||||
with open('apilog.log', 'a') as logfile:
|
||||
logfile.write(str(starttime)+": ")
|
||||
logfile.write(request.user.username+"(POST) \r\n")
|
||||
dologging("apilog.log",request.user.username+"(POST)")
|
||||
|
||||
data = pd.DataFrame({'TimeStamp (sec)': unixtime,
|
||||
' Horizontal (meters)': distance,
|
||||
|
||||
@@ -56,7 +56,7 @@ def workout_tp_upload_view(request, id=0):
|
||||
check_tp_workout_id,
|
||||
w,
|
||||
headers['Location'])
|
||||
|
||||
|
||||
messages.info(request, 'Uploaded to TrainingPeaks')
|
||||
|
||||
else: # pragma: no cover # no tcxfile
|
||||
@@ -1316,11 +1316,7 @@ def strava_webhook_view(request):
|
||||
# logging
|
||||
t = time.localtime()
|
||||
timestamp = time.strftime('%b-%d-%Y_%H%M', t)
|
||||
with open('strava_webhooks.log', 'a') as f:
|
||||
f.write('\n')
|
||||
f.write(timestamp)
|
||||
f.write(' ')
|
||||
f.write(str(request.body))
|
||||
dologging("strava_webhooks.log",request.body)
|
||||
|
||||
# POST - does nothing so far
|
||||
data = json.loads(request.body)
|
||||
@@ -1331,11 +1327,7 @@ def strava_webhook_view(request):
|
||||
_ = data['event_time']
|
||||
except KeyError: # pragma: no cover
|
||||
timestamp = time.strftime('%b-%d-%Y_%H%M', t)
|
||||
with open('strava_webhooks.log', 'a') as f:
|
||||
f.write('\n')
|
||||
f.write(timestamp)
|
||||
f.write(' ')
|
||||
f.write('KeyError line 1038')
|
||||
dologging("strava_webhooks.log","KeyError line 1330")
|
||||
return HttpResponse(status=200)
|
||||
|
||||
if object_type == 'activity':
|
||||
@@ -1396,11 +1388,7 @@ def strava_webhook_view(request):
|
||||
updates = data['updates']
|
||||
stravaid = data['object_id']
|
||||
except KeyError: # pragma: no cover
|
||||
with open('strava_webhooks.log', 'a') as f:
|
||||
f.write('\n')
|
||||
f.write(timestamp)
|
||||
f.write(' ')
|
||||
f.write('KeyError line 10576')
|
||||
dologging("strava_webhooks.log","KeyError line 1391")
|
||||
return HttpResponse(status=200)
|
||||
try:
|
||||
ws = Workout.objects.filter(uploadedtostrava=stravaid)
|
||||
@@ -1408,21 +1396,14 @@ def strava_webhook_view(request):
|
||||
return HttpResponse(status=200)
|
||||
except Workout.DoesNotExist: # pragma: no cover
|
||||
timestamp = time.strftime('%b-%d-%Y_%H%M', t)
|
||||
with open('strava_webhooks.log', 'a') as f:
|
||||
f.write('\n')
|
||||
f.write(timestamp)
|
||||
f.write(' ')
|
||||
f.write('Workout not found')
|
||||
dologging("strava_webhooks.log","workout not found")
|
||||
|
||||
return HttpResponse(status=200)
|
||||
try:
|
||||
r = Rower.objects.get(strava_owner_id=strava_owner)
|
||||
except Rower.DoesNotExist: # pragma: no cover
|
||||
timestamp = time.strftime('%b-%d-%Y_%H%M', t)
|
||||
with open('strava_webhooks.log', 'a') as f:
|
||||
f.write('\n')
|
||||
f.write(timestamp)
|
||||
f.write(' ')
|
||||
f.write('Rower not found')
|
||||
dologging("strava_webhooks.log","Rower not found")
|
||||
return HttpResponse(status=200)
|
||||
except MultipleObjectsReturned: # pragma: no cover
|
||||
rs = Rower.objects.filter(strava_owner_id=strava_owner)
|
||||
@@ -1438,11 +1419,7 @@ def strava_webhook_view(request):
|
||||
w.workouttype = mytypes.stravamappinginv[value]
|
||||
w.save()
|
||||
except KeyError: # pragma: no cover
|
||||
with open('strava_webhooks.log', 'a') as f:
|
||||
f.write('\n')
|
||||
f.write(timestamp)
|
||||
f.write(' ')
|
||||
f.write('Workout type not found: '+str(value))
|
||||
dologging("strava_webhooks.log","Workout type not found")
|
||||
return HttpResponse(status=200)
|
||||
|
||||
return HttpResponse(status=200)
|
||||
@@ -1457,12 +1434,7 @@ def garmin_summaries_view(request): # pragma: no cover
|
||||
|
||||
t = time.localtime()
|
||||
timestamp = time.strftime('%b-%d-%Y_%H%M', t)
|
||||
with open('garminlog.log', 'a') as f:
|
||||
f.write('\n')
|
||||
f.write(timestamp)
|
||||
f.write(' ')
|
||||
f.write(str(request.body))
|
||||
f.write('\n')
|
||||
dologging("garminlog.log",request.body)
|
||||
# POST request
|
||||
data = json.loads(request.body)
|
||||
activities = data['activities']
|
||||
|
||||
@@ -11,11 +11,7 @@ from rowers import credits
|
||||
|
||||
@csrf_exempt
|
||||
def braintree_webhook_view(request):
|
||||
with open('braintreewebhooks.log', 'a') as f:
|
||||
t = time.localtime()
|
||||
timestamp = time.strftime('%b-%d-%Y_%H%M', t)
|
||||
f.write('\n')
|
||||
f.write(timestamp+' /rowers/braintree/\n')
|
||||
dologging('braintreewebhooks.log',' /rowers/braintree/')
|
||||
if request.method == 'POST':
|
||||
result = braintreestuff.webhook(request)
|
||||
if result == 4: # pragma: no cover
|
||||
|
||||
Reference in New Issue
Block a user