예제 #1
0
def register(request):
    """
    Example valid JSON:
    {"username": "******", "email": "*****@*****.**", "password": "******", "restaurant": "My Pub"}
    """
    serialized = UserSerializer(data=request.data)
    if serialized.is_valid():
        #default code: create new_user
        user_data = utils.get_user_data(request.data)
        new_user = utils.create_inactive_user(**user_data)

        #Crear el restaurante del nuevo usuario:
        new_owner = Owner(user=new_user, name=new_user.username)
        new_owner.save()
        print("Owner " + new_owner.name + " created. [OK]")
        restaurant_name = request.data.pop('restaurant')
        new_restaurant = Restaurant(owner=new_owner, name=restaurant_name)
        new_restaurant.save()
        print("Restaurant " + new_restaurant.name + " created. [OK]")

        #Crear el staff
        staff_name = new_user.username
        new_staff = Staff(user=new_user,
                          first_name=staff_name,
                          restaurant=new_restaurant)  #Manager por defecto
        new_staff.save()
        print("Staff " + new_staff.first_name + " created. [OK]")

        return Response(utils.USER_CREATED_RESPONSE_DATA,
                        status=status.HTTP_201_CREATED)
    else:
        return Response(serialized._errors, status=status.HTTP_409_CONFLICT)
    def test_get_user_data(self):
        valid_data = {'id': 1}
        mock_data = valid_data.copy()
        mock_data.update({'invalid_field': 0})

        data = utils.get_user_data(mock_data)

        self.assertEqual(valid_data, data)
    def test_get_user_data(self):
        valid_data = {'id': 1}
        mock_data = valid_data.copy()
        mock_data.update({'invalid_field': 0})

        data = utils.get_user_data(mock_data)

        self.assertEqual(valid_data, data)
def register(request):
    if  "application/json" in request.META.get("CONTENT_TYPE"):
        data = json.loads(request.body)
    else:
        data = request.POST
    serialized = UserSerializer(data=data)
    if serialized.is_valid():
        user_data = utils.get_user_data(data)
        utils.create_inactive_user(request, **user_data)
        return Response(utils.USER_CREATED_RESPONSE_DATA,
                        status=status.HTTP_201_CREATED)
    else:
        return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)