Private
Public Access
1
0

trying garmin workout list - not working

This commit is contained in:
Sander Roosendaal
2020-06-28 16:24:51 +02:00
parent c53d96d8bb
commit 8303854314
5 changed files with 49 additions and 2 deletions

View File

@@ -57,7 +57,8 @@ class RowerInline(admin.StackedInline):
'stravatoken','stravatokenexpirydate','stravarefreshtoken',
'stravaexportas','strava_auto_export',
'strava_auto_import',
'runkeepertoken','runkeeper_auto_export',)}),
'runkeepertoken','runkeeper_auto_export',
'garmintoken','garminrefreshtoken')}),
('Team',
{'fields':('friends','privacy','team')}),
)

View File

@@ -22,10 +22,12 @@ queue = django_rq.get_queue('default')
queuelow = django_rq.get_queue('low')
queuehigh = django_rq.get_queue('low')
from rowers.utils import myqueue
from rowers.models import C2WorldClassAgePerformance
from rowers.models import C2WorldClassAgePerformance,Rower,Workout,TombStone
from django.core.exceptions import PermissionDenied
from rowers.utils import custom_exception_handler,NoTokenError
oauth_data = {
'client_id': GARMIN_CLIENT_KEY,
'client_secret': GARMIN_CLIENT_SECRET,
@@ -80,3 +82,30 @@ def garmin_processcallback(redirect_response,resource_owner_key,resource_owner_s
garminrefreshtoken = oauth_tokens.get('oauth_token_secret')
return garmintoken,garminrefreshtoken
def garmin_open(user):
r = Rower.objects.get(user=user)
token = Rower.garmintoken
if (token == '') or (token is None):
raise NoTokenError("User has no garmin token")
return token
def get_garmin_workout_list(user):
r = Rower.objects.get(user=user)
if (r.garmintoken == '') or (r.stravatoken is None):
s = "Token doesn't exist. Need to authorize"
return custom_exception_handler(401,s)
garmin = OAuth1Session(oauth_data['client_id'],
client_secret=oauth_data['client_secret'],
resource_owner_key=r.garmintoken,
resource_owner_secret=r.garminrefreshtoken,
)
url = 'https://healthapi.garmin.com/wellness-api/rest/activities?uploadStartTimeInSeconds=1593113760&uploadEndTimeInSeconds=1593279360'
result = garmin.get(url)
return result

View File

@@ -2793,6 +2793,7 @@ class Workout(models.Model):
uploadedtounderarmour = models.BigIntegerField(default=0)
uploadedtotp = models.BigIntegerField(default=0)
uploadedtorunkeeper = models.BigIntegerField(default=0)
uploadedtogarmin = models.BigIntegerField(default=0)
forceunit = models.CharField(default='lbs',
choices = (
('lbs','lbs'),

View File

@@ -1008,6 +1008,21 @@ def workout_stravaimport_view(request,message="",userid=0):
return HttpResponse(res)
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
def workout_garminimport_view(request,userid=0):
r = getrequestrower(request,userid=userid)
try:
thetoken = garmin_open(request.user)
except NoTokenError:
return HttpResponseRedirect("/rowers/me/garminauthorize/")
res = garmin_stuff.get_garmin_workout_list(request.user)
workouts = []
# The page where you select which RunKeeper workout to import
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)