diff --git a/rowers/tests/test_imports.py b/rowers/tests/test_imports.py index 189a7ada..979f5fb0 100644 --- a/rowers/tests/test_imports.py +++ b/rowers/tests/test_imports.py @@ -94,6 +94,13 @@ class GarminObjects(DjangoTestCase): data,w = dataprep.getrowdata_db(id=ws[0].id) self.assertEqual(len(data),2) + def test_garmin_deregistration(self): + data = {"userAccessToken":"dfdzf"} + response = self.c.post('/rowers/garmin/deregistration/',json.dumps(data), + content_type='application/json') + + self.assertEqual(response.status_code,200) + @pytest.mark.django_db diff --git a/rowers/urls.py b/rowers/urls.py index 7578fc36..2a308b47 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -417,6 +417,7 @@ urlpatterns = [ name='workout_delete'), re_path(r'^garmin/summaries/',views.garmin_summaries_view,name='garmin_summaries_view'), re_path(r'^garmin/activities/',views.garmin_details_view,name='garmin_details_view'), + re_path(r'^garmin/deregistration/',views.garmin_deregistration_view,name='garmin_deregistration_view'), # re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/delete/$',login_required( # views.workout_code_delete_view),name='workout_code_delete'), re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/smoothenpace/$',views.workout_smoothenpace_view,name='workout_smoothenpace_view'), diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index cd2d66aa..ea68c2b9 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -1024,7 +1024,22 @@ def garmin_summaries_view(request): return HttpResponse(status=400) -@csrf_exempt +@csrf_exempt +def garmin_deregistration_view(request): + if request.method != 'POST': + raise Http404("not allowed") + + data = json.loads(request.body) + garmintoken = data['userAccessToken'] + try: + r = Rower.objects.get(garmintoken=garmintoken) + r.garmintoken = '' + except Rower.DoesNotExist: + raise HttpResponseNotFound("Not found") + + return HttpResponse(status=200) + +@csrf_exempt def garmin_details_view(request): if request.method != 'POST': raise Http404("not allowed")