All checks were successful
Deploy Beta (NATIVE) / deploy (push) Successful in 31s
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
from rest_framework import status, permissions
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
from django.contrib.auth.models import User
|
|
from .serializers import UserRegisterSerializer
|
|
|
|
class UserRegisterView(APIView):
|
|
permission_classes = [permissions.AllowAny]
|
|
|
|
def post(self, request):
|
|
serializer = UserRegisterSerializer(data=request.data)
|
|
if serializer.is_valid():
|
|
serializer.save()
|
|
return Response({"message": "User registered successfully"}, status=status.HTTP_201_CREATED)
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
|
|
|
class UserProfileView(APIView):
|
|
permission_classes = [permissions.IsAuthenticated]
|
|
|
|
def get(self, request):
|
|
user = request.user
|
|
profile = getattr(user, 'customer_profile', None)
|
|
return Response({
|
|
"username": user.username,
|
|
"email": user.email,
|
|
"phone": profile.phone if profile else "",
|
|
"address": profile.default_address if profile else ""
|
|
})
|
|
|
|
def put(self, request):
|
|
user = request.user
|
|
profile = getattr(user, 'customer_profile', None)
|
|
user.email = request.data.get('email', user.email)
|
|
user.save()
|
|
if profile:
|
|
profile.phone = request.data.get('phone', profile.phone)
|
|
profile.default_address = request.data.get('address', profile.default_address)
|
|
profile.save()
|
|
return Response({"message": "Profile updated successfully"})
|