from django.shortcuts import render from rest_framework.views import APIView from rest_framework import generics, permissions, status from rest_framework.response import Response from .serializers import ProfileSerializer, UserAddressSerializer from .models import UserAddressModel from rest_framework.permissions import IsAuthenticated class ProfileView(APIView): serializer_class = ProfileSerializer permission_classes = [IsAuthenticated] def get(self, request): user_ser = self.serializer_class(instance=request.user) return Response(user_ser.data, status=status.HTTP_200_OK) def patch(self, request): user = request.user user_ser = self.serializer_class(user, data=request.data, partial=True) if user_ser.is_valid(): user_ser.save() return Response(user_ser.data) return Response(user_ser.errors, status=status.HTTP_400_BAD_REQUEST) class CreateAddressView(generics.CreateAPIView): queryset = UserAddressModel.objects.all() serializer_class = UserAddressSerializer permission_classes = [permissions.IsAuthenticated] def perform_create(self, serializer): serializer.save(user=self.request.user) class EditAddressView(generics.UpdateAPIView): queryset = UserAddressModel.objects.all() serializer_class = UserAddressSerializer permission_classes = [permissions.IsAuthenticated] def get_queryset(self): return UserAddressModel.objects.filter(user=self.request.user) class DeleteAddressView(generics.DestroyAPIView): queryset = UserAddressModel.objects.all() permission_classes = [permissions.IsAuthenticated] def get_queryset(self): return UserAddressModel.objects.filter(user=self.request.user) class GetUserAddressesView(generics.ListAPIView): serializer_class = UserAddressSerializer permission_classes = [permissions.IsAuthenticated] def get_queryset(self): return UserAddressModel.objects.filter(user=self.request.user) class GetIDUserAddressView(generics.RetrieveAPIView): serializer_class = UserAddressSerializer permission_classes = [permissions.IsAuthenticated] def get_queryset(self): return UserAddressModel.objects.filter(user=self.request.user)