delete and add activities
This commit is contained in:
@@ -940,9 +940,13 @@ def intervals_webhook_view(request):
|
||||
# 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)
|
||||
@@ -954,78 +958,14 @@ def intervals_webhook_view(request):
|
||||
|
||||
integration = IntervalsIntegration(r.user)
|
||||
|
||||
try:
|
||||
records = event["events"]
|
||||
except KeyError:
|
||||
records = []
|
||||
if webhook_type.lower() == 'calendar_updated':
|
||||
integration.update_calendar(r, event)
|
||||
|
||||
for record in records:
|
||||
id = record['id']
|
||||
data = {}
|
||||
try:
|
||||
pss = PlannedSession.objects.filter(intervals_icu_id=id)
|
||||
if pss.count() > 0:
|
||||
ps = pss[0]
|
||||
data = integration.update_plannedsession(ps, record)
|
||||
else:
|
||||
data = integration.get_plannedsession(id)
|
||||
ps = PlannedSession(
|
||||
manager=r.user,
|
||||
intervals_icu_id=id,
|
||||
)
|
||||
ps.save()
|
||||
ps.rower.add(r)
|
||||
except PlannedSession.DoesNotExist:
|
||||
continue
|
||||
if webhook_type.lower() == 'activity_uploaded':
|
||||
integration.import_activities(event)
|
||||
|
||||
# got data
|
||||
if data:
|
||||
ps.name = data['name']
|
||||
ps.comment = data['description']
|
||||
ps.startdate = arrow.get(data['start_date_local']).datetime
|
||||
ps.enddate = arrow.get(data['end_date_local']).datetime
|
||||
ps.preferreddate = arrow.get(data['start_date_local']).datetime
|
||||
ps.sessionsport = mytypes.intervalsmappinginv[data['type']]
|
||||
ps.sessiontype = 'session'
|
||||
ps.save()
|
||||
try:
|
||||
timetarget = data['time_target']
|
||||
except KeyError:
|
||||
timetarget = None
|
||||
if timetarget is None:
|
||||
try:
|
||||
timetarget = data['moving_time']
|
||||
except KeyError:
|
||||
timetarget = None
|
||||
if timetarget is None:
|
||||
timetarget = 3600
|
||||
timetarget = int(timetarget)/60.
|
||||
ps.sessionvalue = timetarget
|
||||
ps.save()
|
||||
if data['category'].lower() == 'workout':
|
||||
ps.fitfile = data['fitfile']
|
||||
ps.save()
|
||||
ps.update_steps()
|
||||
if data['category'].lower() == 'target':
|
||||
ps.sessiontype = 'cycletarget'
|
||||
ps.sessionvalue = int(data['time_target'])/60.
|
||||
ps.enddate = ps.startdate + datetime.timedelta(days=6)
|
||||
ps.save()
|
||||
|
||||
try:
|
||||
deleted_records = event["deleted_events"]
|
||||
except KeyError:
|
||||
deleted_records = []
|
||||
|
||||
for record in deleted_records:
|
||||
id = record['id']
|
||||
try:
|
||||
pss = PlannedSession.objects.filter(intervals_icu_id=id)
|
||||
if r.intervals_delete_plannedsession and pss.count() > 0:
|
||||
for ps in pss:
|
||||
ps.delete()
|
||||
except PlannedSession.DoesNotExist:
|
||||
continue
|
||||
if webhook_type.lower() == 'activity_deleted':
|
||||
integration.delete_activities(event)
|
||||
|
||||
return HttpResponse(status=200)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user