Merge branch 'develop' into feature/idoklad
This commit is contained in:
@@ -10,7 +10,9 @@ from rowers.utils import NoTokenError
|
||||
from rowers.models import PlannedSession
|
||||
|
||||
import rowers.integrations.strava as strava
|
||||
import rowers.integrations.intervals as intervals
|
||||
from rowers.integrations import importsources
|
||||
from rowers.integrations import IntervalsIntegration
|
||||
from rowers.utils import NoTokenError
|
||||
|
||||
import numpy
|
||||
@@ -913,9 +915,62 @@ def workout_rojaboimport_view(request, message="", userid=0): # pragma: no cover
|
||||
|
||||
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
def intervals_webhook_view(request):
|
||||
if request.method == 'GET':
|
||||
verificationtoken = request.GET.get('secret')
|
||||
if verificationtoken != intervals.webhookverification:
|
||||
return HttpResponse(status=403)
|
||||
|
||||
dologging("intervals_webhooks.log","GET request")
|
||||
dologging("intervals_webhooks.log",request.body)
|
||||
|
||||
else:
|
||||
data = json.loads(request.body)
|
||||
try:
|
||||
verificationtoken = data['secret']
|
||||
except KeyError:
|
||||
return HttpResponse(status=403)
|
||||
if verificationtoken != intervals.webhookverification:
|
||||
return HttpResponse(status=403)
|
||||
try:
|
||||
events = data['events']
|
||||
except KeyError:
|
||||
# return invalid request if no events
|
||||
return HttpResponse(status=200)
|
||||
|
||||
webhook_type = None
|
||||
|
||||
|
||||
for event in events:
|
||||
try:
|
||||
athlete_id = event['athlete_id']
|
||||
webhook_type = event['type']
|
||||
r = Rower.objects.get(intervals_owner_id=athlete_id)
|
||||
except Rower.DoesNotExist:
|
||||
return HttpResponse(status=200)
|
||||
except MultipleObjectsReturned:
|
||||
rs = Rower.objects.filter(intervals_owner_id=athlete_id)
|
||||
r = rs[0]
|
||||
except KeyError:
|
||||
return HttpResponse(status=200)
|
||||
|
||||
integration = IntervalsIntegration(r.user)
|
||||
|
||||
if webhook_type.lower() == 'calendar_updated':
|
||||
integration.update_calendar(r, event)
|
||||
|
||||
if webhook_type.lower() == 'activity_uploaded':
|
||||
integration.import_activities(event)
|
||||
|
||||
if webhook_type.lower() == 'activity_deleted':
|
||||
integration.delete_activities(event)
|
||||
|
||||
return HttpResponse(status=200)
|
||||
|
||||
|
||||
# for Strava webhook request validation
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
def strava_webhook_view(request):
|
||||
if request.method == 'GET':
|
||||
|
||||
@@ -2777,7 +2777,7 @@ def rower_view_instantplan(request, id='', userid=0):
|
||||
messages.info(request, 'Your Sessions have been added')
|
||||
|
||||
url = reverse('plannedsessions_view')
|
||||
timeperiod = startdate.strftime(
|
||||
timeperiod = timezone.now().date().strftime(
|
||||
'%Y-%m-%d')+'/'+enddate.strftime('%Y-%m-%d')
|
||||
url = url+'?when='+timeperiod
|
||||
|
||||
|
||||
Reference in New Issue
Block a user