This commit is contained in:
Trey t
2023-07-02 16:37:38 -05:00
parent 2a7cda8502
commit b9438e0363
4 changed files with 35 additions and 3 deletions

Binary file not shown.

View File

@@ -75,7 +75,25 @@ class POSTCompleteWorkoutSerializer(serializers.ModelSerializer):
exclude = ['registered_user']
class PlannedWorkoutSerializer(serializers.ModelSerializer):
workout = POSTCompleteWorkoutSerializer(many=False, read_only=True)
class Meta:
model = PlannedWorkout
exclude = ['registered_user']
depth = 1
class POSTPlannedWorkoutSerializer(serializers.ModelSerializer):
class Meta:
model = PlannedWorkout
exclude = ['registered_user']
def create(self, validated_data):
print(validated_data)
registered_user_id = self.context.get("registered_user")
registered_user = RegisteredUser.objects.get(id=registered_user_id)
planned_workout = PlannedWorkout.objects.create(
registered_user=registered_user,
workout=validated_data['workout'],
on_date=validated_data['on_date']
)
planned_workout.save()
return planned_workout

View File

@@ -9,4 +9,5 @@ urlpatterns = [
path('completed/', views.workouts_completed_by_logged_in_user, name='user completed workouts'),
path('create/', views.add_workout, name='create new workout'),
path('planned_workouts/', views.workouts_planned_by_logged_in_user, name='planned workout for user'),
path('plan_workout/', views.plan_workout, name='plan workout'),
]

View File

@@ -12,6 +12,7 @@ from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import authentication_classes
from rest_framework.decorators import permission_classes
from django.shortcuts import get_object_or_404
import json
@@ -59,7 +60,6 @@ def add_workout(request):
# exercise_data = dict(request.POST)["exercise_data"]
exercise_data = request.data["exercise_data"]
print(exercise_data)
if exercise_data is None:
return Response({"exercise_data": [ "missing" ] }, status=status.HTTP_400_BAD_REQUEST)
@@ -99,4 +99,17 @@ def workouts_planned_by_logged_in_user(request):
registered_user = RegisteredUser.objects.get(user=request.user)
workouts = PlannedWorkout.objects.filter(registered_user=registered_user)
serializer = PlannedWorkoutSerializer(workouts, many=True)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.data, status=status.HTTP_200_OK)
@api_view(['POST'])
@authentication_classes([TokenAuthentication])
@permission_classes([IsAuthenticated])
def plan_workout(request):
registered_user = RegisteredUser.objects.get(user=request.user)
serializer = POSTPlannedWorkoutSerializer(data=request.data,
context = {"registered_user":registered_user.pk})
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_500_INTERNAL_SERVER_ERROR)