From c1803ed4a9436d79cfd51a10f4b33278d98f2b8c Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Wed, 8 Jul 2020 15:01:01 +0200
Subject: [PATCH] more code for garmin files
---
rowers/garmin_stuff.py | 20 ++++++++------
rowers/tasks.py | 32 ++++++++++++++++++++++
rowers/templates/rower_exportsettings.html | 4 +--
3 files changed, 45 insertions(+), 11 deletions(-)
diff --git a/rowers/garmin_stuff.py b/rowers/garmin_stuff.py
index 486a3630..6e8d851f 100644
--- a/rowers/garmin_stuff.py
+++ b/rowers/garmin_stuff.py
@@ -110,14 +110,18 @@ def garmin_open(user):
return token
-def get_garmin_file(r,callbackURL,starttime):
- garmin = OAuth1Session(oauth_data['client_id'],
- client_secret=oauth_data['client_secret'],
- resource_owner_key=r.garmintoken,
- resource_owner_secret=r.garminrefreshtoken,
- )
- response = garmin.get(callbackURL)
- return 1
+def get_garmin_file(r,callbackURL,starttime,fileType):
+ job = queuehigh.enqueue(
+ get_garmin_file,
+ oauth_data['client_id'],
+ oauth_data['client_secret'],
+ garmintoken,
+ garminrefreshtoken,
+ r.user.id,
+ callbackURL,filetype
+ )
+
+ return job.id
def get_garmin_workout_list(user):
r = Rower.objects.get(user=user)
diff --git a/rowers/tasks.py b/rowers/tasks.py
index e83d08c3..1a63dbd8 100644
--- a/rowers/tasks.py
+++ b/rowers/tasks.py
@@ -48,6 +48,8 @@ from rowsandall_app.settings_dev import SITE_URL as SITE_URL_DEV
from rowsandall_app.settings import PROGRESS_CACHE_SECRET
from rowsandall_app.settings import SETTINGS_NAME
from rowsandall_app.settings import workoutemailbox
+from rowsandall_app.settings import UPLOAD_SERVICE_SECRET, UPLOAD_SERVICE_URL
+
import pandas as pd
@@ -678,6 +680,36 @@ def handle_getagegrouprecords(self,
return 1
+@app.task(bind=True)
+def get_garmin_file(client_id,client_secret,garmintoken,garminrefreshtoken,userid,url,filetype):
+ garmin = OAuth1Session(client_id,
+ client_secret=client_secret,
+ resource_owner_key=garmintoken,
+ resource_owner_secret=garminrefreshtoken,
+ )
+
+ filename = 'media/{code}_{id}.'.format(
+ code = uuid4().hex[:16],
+ id = userid
+ )+filetype
+
+ response = garmin.get(url, stream=True)
+ if response.status_code == 200:
+ with open(filename, 'wb') as out_file:
+ shutil.copyfileobj(response.raw, out_file)
+
+ uploadoptions = {
+ 'secret':UPLOAD_SERVICE_SECRET,
+ 'user':userid,
+ 'file': filename,
+ 'title': 'Import from Garmin File'
+ }
+
+ response = requests.post(UPLOAD_SERVICE_URL,data=uploadoptions)
+
+ del response
+
+ return 1
@app.task(bind=True)
def long_test_task(self,aantal,debug=False,job=None,session_key=None):
diff --git a/rowers/templates/rower_exportsettings.html b/rowers/templates/rower_exportsettings.html
index 69a6bc40..14c5286b 100644
--- a/rowers/templates/rower_exportsettings.html
+++ b/rowers/templates/rower_exportsettings.html
@@ -34,12 +34,10 @@
alt="connect with Polar" width="130">

-
-
{% endblock %}