예제 #1
0
def signup(request):
    """
    register the user

    :param request: client request
    :return: the user's data and profile
    :rtype: JSONObject
    """
    mutable = request.POST._mutable
    request.POST._mutable = True  # make the request mutable so that I can add extra fields
    user_serializer = UserSerializer(data=request.data)

    if user_serializer.is_valid():
        user = user_serializer.save()
        request.data['user'] = user.id
        request.data['username'] = user.username

        profile_serializer = ProfileSerializer(data=request.data)
        if profile_serializer.is_valid():
            profile_serializer.save()
            data = {
                "user": user_serializer.data,
                "profile": profile_serializer.data
            }
            return Response(data, status=status.HTTP_201_CREATED)
        else:
            return Response(profile_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
    else:
        request.POST._mutable = mutable  # leave as you wish to find :)
        return Response(user_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
예제 #2
0
    def put(self, request, api_version, token, format=None):
        user = self.get_object(token)
        serializer = UserSerializer(user, data=request.data)

        if (serializer.is_valid()):
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
예제 #3
0
def signup(req):
    """
    Create user and return
    """
    if ('email' in req.POST):
        req.POST['username'] = req.POST['email']
    serializer = UserSerializer(data=req.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    else:
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
예제 #4
0
def users(req):
    """
    retrieve all users
    """
    users = User.objects.all()
    ser = UserSerializer(users, many=True)
    return Response(ser.data)
예제 #5
0
파일: foodRate.py 프로젝트: eu42/EatRight
class FoodRateReadSerializer(serializers.ModelSerializer):

    user = UserSerializer()

    class Meta:
        model = FoodRate
        fields = '__all__'
        depth = 1
예제 #6
0
class RestaurantCommentReadSerializer(serializers.ModelSerializer):

    user = UserSerializer()

    class Meta:
        model = RestaurantComment
        fields = '__all__'
        depth = 1
예제 #7
0
def changePassword(req):
    """
    change user password
    """
    try:
        oldPassword = req.POST['old_password']
        newPassword = req.POST['new_password']
        if req.user.check_password(oldPassword):
            user = req.user
            user.set_password(newPassword)
            serializer = UserSerializer(user)
            if serializer.is_valid():
                serializer.save()
                return HttpResponse(status=status.HTTP_204_NO_CONTENT)
            else:
                return Response(user.errors, status=status.HTTP_400_BAD_REQUEST)
        else:
            return HttpResponse(status=status.HTTP_401_UNAUTHORIZED)
    except MultiValueDictKeyError as e:
        return HttpResponse()
    except PermissionError as e:
        return HttpResponse(status=status.HTTP_401_UNAUTHORIZED)
예제 #8
0
def users(request):
    """
    retrieve all users

    :param request: client request
    :return: list of all users
    :rtype: JSONArray
    """
    try:
        serializer = UserSerializer(User.objects.all(), many=True)
        return Response(serializer.data, status=status.HTTP_200_OK)
    except User.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)
예제 #9
0
파일: food.py 프로젝트: eu42/EatRight
class FoodReadSerializer(serializers.ModelSerializer):

    inclusions = InclusionReadSerializer(source='inclusion_set', many=True)
    comments = FoodCommentPureSerializer(source='foodcomment_set', many=True)
    rates = FoodRatePureSerializer(source='foodrate_set', many=True)
    tags = TagSerializer(many=True)
    restaurant = RestaurantSerializer()
    user = UserSerializer()

    class Meta:
        model = Food
        fields = '__all__'
        depth = 1
예제 #10
0
def signin(req):
    """
    authenticate user with email and password, return token
    """
    serializer = UserSerializer(data=req.data)
    data = serializer.initial_data
    if 'email' in data and 'password' in data:
        user = authenticate(
            username=serializer.initial_data['email'],
            password=serializer.initial_data['password']
        )
        if user is not None:
            token = UserService.refreshToken(user)
            return Response({'token': token.key})
    return Response({}, status=status.HTTP_400_BAD_REQUEST)
예제 #11
0
def user(req, userId):
    """
    retrieve, modify or delete single user by id
    """
    try:
        user = User.objects.get(id=userId)
    except User.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if req.method == 'GET':
        serializer = UserReadSerializer(user)
        return Response(serializer.data)

    elif req.method == 'PUT':
        serializer = UserSerializer(user, data=req.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    elif req.method == 'DELETE':
        user.delete()
        return HttpResponse(status=status.HTTP_204_NO_CONTENT)
예제 #12
0
 def get(self, request, api_version, token, format=None):
     user = self.get_object(token)
     serializer = UserSerializer(user)
     return Response(serializer.data)
예제 #13
0
 def post(self, request, api_version, format=None):
     serializer = UserSerializer(data=request.data)
     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)