Esempio n. 1
0
 def patch(self, request, id, format=None):
     user = User.objects.get(id=id)
     serializer = UserSerializer(blog, data=request.data, partial=True)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Esempio n. 2
0
 def post(self, request, format=None):
     user = request.data
     if not user:
         return Response({'response': 'error', 'message': 'No data found'})
     serializer = UserSerializer(data=user)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Esempio n. 3
0
 def post(self, request):  # register api
     request_data = request.data
     user_serializer = UserSerializer(data=request_data)
     if user_serializer.is_valid():  # check if request params are valid
         user = user_serializer.save()  # generate user
         refresh = RefreshToken.for_user(
             user)  # generate token after user generated
         res = {"token": str(refresh.access_token), "id": user.id}
         return Response(res, status=status.HTTP_201_CREATED)
     else:
         return Response(user_serializer.errors,
                         status=status.HTTP_400_BAD_REQUEST
                         )  # check if request params are invalid
Esempio n. 4
0
def get_list(request):
    """查询用户列表
    """
    details = request.GET.dict()
    users = UserController().get_list(**details)
    serializer = UserSerializer(users, many=True)
    return Response(serializer.data)
Esempio n. 5
0
 def post(self, request, *args, **kwargs):
     response = super(CustomObtainAuthToken,
                      self).post(request, *args, **kwargs)
     token = Token.objects.get(key=response.data["token"])
     user = User.objects.get(id=token.user_id)
     serializer = UserSerializer(user, many=False)
     return Response({"token": token.key, "user": serializer.data})
Esempio n. 6
0
def get(request, id):
    """通过 id 查询某个用户
    """
    user = UserController().get_by_id(id)
    if user:
        serializer = UserSerializer(user)
        return Response(serializer.data)
    return Response(None, status=status.HTTP_404_NOT_FOUND)
Esempio n. 7
0
def register(request):
    """注册新用户
    """
    details = dict(request.data)
    user = UserController().create(**details)
    if user:
        serializer = UserSerializer(user)
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(None, status=status.HTTP_400_BAD_REQUEST)
Esempio n. 8
0
def update_user(request, user, *args, **kwargs):
    data = request.data.dict()
    validated, incorrect_field = validate_unknown_fields(
        USER_UPDATE_FIELDS + MANDATORY_FIELDS, data)
    if not validated:
        return make_exc_response(data, "INVN004", status.HTTP_400_BAD_REQUEST,
                                 None, incorrect_field)
    validated, missing_field = validate_necessary_keys(MANDATORY_FIELDS, data)
    if not validated:
        return make_exc_response(data, "INVN005", status.HTTP_400_BAD_REQUEST,
                                 None, missing_field)
    return make_success_response(data,
                                 UserSerializer(user.update(**data)).data,
                                 status.HTTP_200_OK)
Esempio n. 9
0
def register_user(request, *args, **kwargs):
    data = request.data.dict()
    validated, incorrect_field = validate_unknown_fields(REGISTER_FIELDS, data)
    if not validated:
        return make_exc_response(data, "INVN004", status.HTTP_400_BAD_REQUEST,
                                 None, incorrect_field)
    validated, missing_field = validate_necessary_keys(REGISTER_FIELDS, data)
    if not validated:
        return make_exc_response(data, "INVN005", status.HTTP_400_BAD_REQUEST,
                                 None, missing_field)
    if User.objects.filter(username=data['username']).exists():
        return make_exc_response(data, "INVN006", status.HTTP_306_RESERVED)
    return make_success_response(data,
                                 UserSerializer(User.create(**data)).data,
                                 status.HTTP_201_CREATED)
Esempio n. 10
0
def login(request):
    """用户登录

    登录系统,并获取 token
    """
    username = request.data.get('username')
    password = request.data.get('password')
    # 登录
    user, token = UserController().login(username, password)
    if user:
        serializer = UserSerializer(user)
        return Response(
            data={
                'token': token,
                'user': serializer.data
            },
            headers={
                'Set-Cookie': 'token={}'.format(token)  # 提供 Cookies
            })

    return Response(None, status=status.HTTP_401_UNAUTHORIZED)