[init] Initial commit
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
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,
|
||||
)
|
||||
Reference in New Issue
Block a user