passing tests with mock server for nk workouts list
This commit is contained in:
@@ -411,6 +411,8 @@ def rower_nk_authorize(request):
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
|
||||
|
||||
# Concept2 authorization
|
||||
@login_required()
|
||||
def rower_c2_authorize(request):
|
||||
@@ -679,7 +681,7 @@ def rower_process_callback(request):
|
||||
message = "The resource owner or authorization server denied the request"
|
||||
messages.error(request,message)
|
||||
|
||||
url = reverse('workouts_view')
|
||||
url = reverse('rower_exportsettings_view')
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@@ -689,7 +691,7 @@ def rower_process_callback(request):
|
||||
message += ' Contact info@rowsandall.com if this behavior persists.'
|
||||
messages.error(request,message)
|
||||
|
||||
url = reverse('workouts_view')
|
||||
url = reverse('rower_exportsettings_view')
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@@ -775,11 +777,105 @@ def rower_process_garmincallback(request):
|
||||
@login_required()
|
||||
def rower_process_nkcallback(request):
|
||||
# do stuff
|
||||
try:
|
||||
code = request.get['code']
|
||||
res = nkstuff.get_token['code']
|
||||
except MultiValueDictKeyError:
|
||||
message = "The resource owner or authorization server denied the request"
|
||||
messages.error(request,message)
|
||||
|
||||
url = reverse('rower_exportsettings_view')
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
access_token = res[0]
|
||||
if access_token == 0:
|
||||
message = res[1]
|
||||
message += ' Contact support@rowsandall.com if this behavior persists'
|
||||
messages.error(request,message)
|
||||
|
||||
url = reverse('rower_exportsettings_view')
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
expires_in = res[1]
|
||||
refresh_token = res[2]
|
||||
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
|
||||
|
||||
r = getrower(request.user)
|
||||
r.nktoken = access_token
|
||||
r.nktokenexpirydate = expirydatetime
|
||||
r.nkrefreshtoken = refresh_token
|
||||
|
||||
r.save()
|
||||
|
||||
successmessage = "Tokens stored. Good to go. Please check your import/export settings"
|
||||
messages.info(request,successmessage)
|
||||
url = reverse('rower_exportsettings_view')
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@login_required()
|
||||
@permission_required('rower.is_coach',fn=get_user_by_userid, raise_exception=True)
|
||||
def workout_nkimport_view(request,userid=0):
|
||||
r = getrequestrower(request,userid=userid)
|
||||
try:
|
||||
thetoken = nk_open(request.user)
|
||||
except NoTokenError:
|
||||
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
|
||||
|
||||
res = nkstuff.get_nk_workout_list(request.user)
|
||||
|
||||
if (res.status_code != 200):
|
||||
if (res.status_code == 401):
|
||||
r = getrower(request.user)
|
||||
if (r.stravatoken == '') or (r.stravatoken is None):
|
||||
s = "Token doesn't exist. Need to authorize"
|
||||
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
|
||||
message = "Something went wrong in workout_stravaimport_view"
|
||||
messages.error(request,message)
|
||||
url = reverse('workouts_view')
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# get NK IDs
|
||||
|
||||
nkdata = [{
|
||||
'id':int(item['id']),
|
||||
'elapsed_time':item['elapsedTime'],
|
||||
'start_date':item['startTime'],
|
||||
} for item in res.json()]
|
||||
|
||||
workouts = []
|
||||
|
||||
for item in res.json():
|
||||
d = int(float(item['totalDistanceGps'])) # could also be Impeller
|
||||
i = item['id']
|
||||
n = item['name']
|
||||
nnn = ''
|
||||
ttot = str(datetime.timedelta(seconds=int(float(item['elapsedTime'])/1000.)))
|
||||
s = item['startTime']
|
||||
keys = ['id','distance','duration','starttime','name','new']
|
||||
values = [i,d,ttot,s,n,nnn]
|
||||
res = dict(zip(keys, values))
|
||||
workouts.append(res)
|
||||
|
||||
breadcrumbs = [
|
||||
{
|
||||
'url':'/rowers/list-workouts/',
|
||||
'name':'Workouts'
|
||||
},
|
||||
{
|
||||
'url':reverse('workout_nkimport_view'),
|
||||
'name':'Strava'
|
||||
},
|
||||
]
|
||||
|
||||
return render(request,'nk_list_import.html',
|
||||
{
|
||||
'workouts':workouts,
|
||||
'rower':r,
|
||||
'active':'nav-workouts',
|
||||
'breadcrumbs':breadcrumbs,
|
||||
'teams':get_my_teams(request.user)
|
||||
})
|
||||
|
||||
# Process Strava Callback
|
||||
@login_required()
|
||||
|
||||
@@ -154,7 +154,9 @@ import os,sys
|
||||
import datetime
|
||||
import iso8601
|
||||
import rowers.c2stuff as c2stuff
|
||||
import rowers.nkstuff as nkstuff
|
||||
from rowers.c2stuff import c2_open
|
||||
from rowers.nkstuff import nk_open
|
||||
from rowers.rp3stuff import rp3_open
|
||||
from rowers.runkeeperstuff import runkeeper_open
|
||||
from rowers.sporttracksstuff import sporttracks_open
|
||||
@@ -186,7 +188,7 @@ from rowsandall_app.settings import (
|
||||
BRAINTREE_MERCHANT_ID,BRAINTREE_PUBLIC_KEY,BRAINTREE_PRIVATE_KEY,
|
||||
PAYMENT_PROCESSING_ON,
|
||||
RECAPTCHA_SITE_KEY, RECAPTCHA_SITE_SECRET,
|
||||
NK_REDIRECT_URI, NK_ClIENT_ID, NK_CLIENT_SECRET
|
||||
NK_REDIRECT_URI, NK_CLIENT_ID, NK_CLIENT_SECRET
|
||||
)
|
||||
|
||||
#from rowers.tasks_standalone import addcomment2
|
||||
|
||||
Reference in New Issue
Block a user