60 lines
2.2 KiB
Python
60 lines
2.2 KiB
Python
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) |