Files
SkillHub/backend/project/users/views.py
T
2024-03-31 21:02:53 +03:00

48 lines
1.5 KiB
Python

import rest_framework.generics
import rest_framework.permissions
import rest_framework.response
import rest_framework.viewsets
import users.models
import users.serializers
class UserViewSet(rest_framework.viewsets.ModelViewSet):
http_method_names = ("get",)
queryset = users.models.User.objects.all()
serializer_class = users.serializers.UserSerializer
permission_classes = [rest_framework.permissions.IsAuthenticated]
class RegisterView(rest_framework.generics.CreateAPIView):
http_method_names = ("post",)
serializer_class = users.serializers.UserSerializer
def post(self, request):
if users.models.User.objects.filter(
username=request.data.get("username"),
).exists():
return rest_framework.response.Response(
{
"username": [
"пользователь с таким именем уже существует.",
],
},
status=rest_framework.status.HTTP_409_CONFLICT,
)
serializer = self.get_serializer(data=request.data)
if serializer.is_valid():
serializer.save()
return rest_framework.response.Response(
serializer.data,
status=rest_framework.status.HTTP_201_CREATED,
)
return rest_framework.response.Response(
serializer.errors,
status=rest_framework.status.HTTP_400_BAD_REQUEST,
)