diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 815db8c6..ef723762 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -1044,8 +1044,8 @@ def strava_webhook_view(request): f.write('KeyError line 1038') return HttpResponse(status=200) - if aspect_type == 'create': - if object_type == 'activity': + if object_type == 'activity': + if aspect_type == 'create': try: stravaid = data['object_id'] except KeyError: @@ -1068,9 +1068,54 @@ def strava_webhook_view(request): f.write('Rower not found') return HttpResponse(status=200) - # too slow ... job = stravastuff.async_get_workout(r.user,stravaid) + elif aspect_type == 'update': + try: + updates = data['updates'] + stravaid = data['object_id'] + except KeyError: + with open('strava_webhooks.log','a') as f: + f.write('\n') + f.write(timestamp) + f.write(' ') + f.write('KeyError line 10576') + return HttpResponse(status=200) + try: + w = Workout.objects.get(id=stravaid) + except Workout.DoesNotExist: + timestamp = time.strftime('%b-%d-%Y_%H%M', t) + with open('strava_webhooks.log','a') as f: + f.write('\n') + f.write(timestamp) + f.write(' ') + f.write('Workout not found') + return HttpResponse(status=200) + try: + r = Rower.objects.get(strava_owner_id=strava_owner) + except Rower.DoesNotExist: + timestamp = time.strftime('%b-%d-%Y_%H%M', t) + with open('strava_webhooks.log','a') as f: + f.write('\n') + f.write(timestamp) + f.write(' ') + f.write('Rower not found') + return HttpResponse(status=200) + for key, value in updates: + if key == 'title': + w.name = value + w.save() + if key == 'type': + try: + w.workouttype = mytypes.stravamappinginv[value] + w.save() + except KeyError: + with open('strava_webhooks.log','a') as f: + f.write('\n') + f.write(timestamp) + f.write(' ') + f.write('Workout type not found: '+str(value)) + return HttpResponse(status=200) return HttpResponse(status=200)