Private
Public Access
1
0

getting started importing RP3 workout

This commit is contained in:
Sander Roosendaal
2021-01-27 12:02:52 +01:00
parent 4070dd26ca
commit 5e5518e176
5 changed files with 49 additions and 4 deletions

View File

@@ -18,7 +18,8 @@ from rowsandall_app.settings import (
STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET,
RP3_CLIENT_ID, RP3_CLIENT_SECRET,
RP3_REDIRECT_URI,RP3_CLIENT_KEY,
RP3_CLIENT_ID, RP3_CLIENT_KEY, RP3_REDIRECT_URI, RP3_CLIENT_SECRET
RP3_CLIENT_ID, RP3_CLIENT_KEY, RP3_REDIRECT_URI, RP3_CLIENT_SECRET,
UPLOAD_SERVICE_URL, UPLOAD_SERVICE_SECRET
)
@@ -128,7 +129,7 @@ def get_rp3_workout_token(workout_id,auth_token,waittime=3,max_attempts=20):
headers = {'Authorization': 'Bearer ' + auth_token }
get_download_link = """{
download(workout_id: """ + str(workout_id) + """, type:tcx){
download(workout_id: """ + str(workout_id) + """, type:csv){
id
status
link
@@ -169,3 +170,37 @@ def get_rp3_workout_link(user,workout_id,waittime=3,max_attempts=20):
auth_token = rp3_open(user)
return get_rp3_workout_token(workout_id,auth_token,waittime=waittime,max_attempts=max_attempts)
def get_rp3_workout(user,workout_id,startdatetime=None):
url = get_rp3_workout_link(user,workout_id)
filename = 'media/RP3Import_'+str(workout_id)+'.csv'
r = Rower.objects.get(user=user)
auth_token = rp3_open(user)
status_code = download_rp3_file(url, auth_token, filename)
if status_code != 200:
return 0
userid = user.id
uploadoptions = {
'secret': UPLOAD_SERVICE_SECRET,
'user': userid,
'file': filename,
'workouttype':'dynamic',
'boattype':'1x',
'rp3id':workout_id,
}
session = requests.session()
newHeaders = {'Content-type': 'application/json', 'Accept': 'text/plain'}
session.headers.update(newHeaders)
response = session.post(UPLOAD_SERVICE_URL,json=uploadoptions)
if response.status_code != 200:
return 0
return response.json()['id']

View File

@@ -21,7 +21,7 @@
{% for workout in workouts %}
<tr>
<td>
<a href="/rowers/workout/rp3import/{{ workout|lookup:'id' }}/">Import</a></td>
<a href="/rowers/workout/rp3import/{{ workout|lookup:'id' }}/{{ workout|lookup:'starttime'}}/">Import</a></td>
<td>{{ workout|lookup:'starttime' }}</td>
<td>{{ workout|lookup:'new' }}</td>
</tr>

View File

@@ -543,6 +543,8 @@ urlpatterns = [
re_path(r'^workout/stravaimport/user/(?P<userid>\d+)/$',views.workout_stravaimport_view,name='workout_stravaimport_view'),
re_path(r'^workout/c2import/all/$',views.workout_getc2workout_all,name='workout_getc2workout_all'),
re_path(r'^workout/c2import/all/(?P<page>\d+)/$',views.workout_getc2workout_all,name='workout_getc2workout_all'),
re_path(r'^workout/rp3import/(?P<externalid>\d+)/(?P<startdatetime>\w+)/$',views.workout_getrp3importview,
name='workout_getrp3importview'),
re_path(r'^workout/(?P<source>\w+.*)import/(?P<externalid>\d+)/$',views.workout_getimportview,name='workout_getimportview'),
re_path(r'^workout/stravaimport/all/$',views.workout_getstravaworkout_all,name='workout_getstravaworkout_all'),
re_path(r'^workout/stravaimport/next/$',views.workout_getstravaworkout_next,name='workout_getstravaworkout_next'),

View File

@@ -1693,7 +1693,6 @@ def workout_getc2workout_all(request,page=1,message=""):
url = reverse('workouts_view')
return HttpResponseRedirect(url)
# List of workouts available on Concept2 logbook - for import
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
@@ -1776,6 +1775,10 @@ importsources = {
'underarmour':underarmourstuff
}
@login_required()
def workout_getrp3importview(request,externalid,startdatetime):
return 1
@login_required()
def workout_getimportview(request,externalid,source = 'c2'):
data,strokedata = importsources[source].get_workout(request.user,externalid)

View File

@@ -4775,6 +4775,11 @@ def workout_upload_api(request):
except KeyError:
c2id = ''
try:
rp3id = post_data['rp3id']
except KeyError:
rp3id = ''
try:
garminid = post_data['garminid']