rojabo token exchange works, refresh not
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from rowsandall_app.settings import NK_OAUTH_LOCATION
|
||||
from rowsandall_app.settings import NK_OAUTH_LOCATION, ROJABO_OAUTH_LOCATION
|
||||
|
||||
from rowers.views.statements import *
|
||||
from rowers.plannedsessions import get_dates_timeperiod
|
||||
@@ -139,6 +139,23 @@ def workout_sporttracks_upload_view(request, id=0):
|
||||
|
||||
return HttpResponseRedirect(url) # pragma: no cover
|
||||
|
||||
# ROJABO authorization
|
||||
def rower_rojabo_authorize(request): # pragma: no cover
|
||||
state = str(uuid4())
|
||||
scope = "read"
|
||||
params = {
|
||||
# "grant_type": "authorization_code",
|
||||
# "response_type": "code",
|
||||
"client_id": ROJABO_CLIENT_ID,
|
||||
#"client_secret": ROJABO_CLIENT_SECRET,
|
||||
# "scope": scope,
|
||||
#"state": state,
|
||||
"redirect_uri": ROJABO_REDIRECT_URI,
|
||||
}
|
||||
|
||||
url = ROJABO_OAUTH_LOCATION+'oauth/authorize?'+urllib.parse.urlencode(params)
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# NK Logbook authorization
|
||||
@login_required()
|
||||
@@ -496,9 +513,47 @@ def rower_process_garmincallback(request): # pragma: no cover
|
||||
url = reverse('rower_exportsettings_view')
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# Process Rojabo callback
|
||||
@login_required()
|
||||
def rower_process_rojabocallback(request): # prgrma: no cover
|
||||
# do stuff
|
||||
try:
|
||||
code = request.GET.get('code', None)
|
||||
res = rojabo_stuff.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.rojabo_token = access_token
|
||||
r.rojabo_tokenexpirydate = expirydatetime
|
||||
r.rojabo_refreshtoken = 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)
|
||||
|
||||
# Process NK Callback
|
||||
|
||||
|
||||
@login_required()
|
||||
def rower_process_nkcallback(request): # pragma: no cover
|
||||
# do stuff
|
||||
|
||||
Reference in New Issue
Block a user