def add_shopping_list_item(id):
    form = ShoppingListItemForm()
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        shopping_list = ShoppingList.query.get(id)
        item_id = form.data['item_id']
        measurement_id = form.data['measurement_id']
        shopping_list_item = ShoppingListItem.query.filter(
            ShoppingListItem.item_id == item_id).filter(
            ShoppingListItem.measurement_id == measurement_id).first()
        if shopping_list_item:
            shopping_list_item.quantity = (
                shopping_list_item.quantity + form.data['quantity'])
        else:
            shopping_list_item = ShoppingListItem(
                user_id=shopping_list.user_id,
                item_id=form.data['item_id'],
                shopping_list_id=id,
                measurement_id=form.data['measurement_id'],
                quantity=form.data['quantity']
            )
        db.session.add(shopping_list_item)
        db.session.commit()
        return {shopping_list.id: shopping_list.to_dict()}
    return {'errors': validation_errors_to_error_messages(form.errors)}
def create_shopping_list():
    form = ShoppingListForm()
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        shopping_list = ShoppingList(
            name=form.data['name'],
            user_id=form.data['user_id']
        )
        db.session.add(shopping_list)
        db.session.commit()
        return {shopping_list.id: shopping_list.to_dict()}
    return {'errors': validation_errors_to_error_messages(form.errors)}
示例#3
0
def login():
    """
    Logs a user in
    """
    form = LoginForm()
    # Get the csrf_token from the request cookie and put it into the
    # form manually to validate_on_submit can be used
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        # Add the user to the session, we are logged in!
        user = User.query.filter(User.email == form.data['email']).first()
        login_user(user)
        return user.to_dict()
    return {'errors': validation_errors_to_error_messages(form.errors)}, 401
示例#4
0
def new_comment():
    form = NewCommentForm()
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        user_id = form.data['user_id']
        post_id = form.data['post_id']
        content = form.data['content']
        new_comment = Comment(user_id=user_id,
                              post_id=post_id,
                              content=content)
        db.session.add(new_comment)
        db.session.commit()
        return new_comment.to_dict()
    if form.errors:
        return {"errors": validation_errors_to_error_messages(form.errors)}
示例#5
0
def sign_up():
    """
    Creates a new user and logs them in
    """
    form = SignUpForm()
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        user = User(username=form.data['username'],
                    email=form.data['email'],
                    password=form.data['password'])
        db.session.add(user)
        db.session.commit()
        login_user(user)
        return user.to_dict()
    return {'errors': validation_errors_to_error_messages(form.errors)}, 400
def edit_delete_item(user_id, item_id):
    user = User.query.get(user_id)
    item = UserItem.query.get(item_id)
    form = InventoryItemForm()
    if request.method == 'PUT':
        form['csrf_token'].data = request.cookies['csrf_token']
        form['item_id'].data = item.item.id
        if form.validate_on_submit():
            item.expiration_date = form.data['expiration_date']
            item.quantity = form.data['quantity']
            item.measurement_id = form.data['measurement_id']
            db.session.add(item)
    if request.method == 'DELETE':
        db.session.delete(item)
    if form.errors:
        return {"errors": validation_errors_to_error_messages(form.errors)}
    else:
        db.session.commit()
        return {"inventory": user.inventory()}
def add_item(user_id):
    user = User.query.get(user_id)
    form = InventoryItemForm()
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        item_id = form.data['item_id']
        measurement_id = form.data['measurement_id']
        item = UserItem(
            item_id=form.data['item_id'],
            user_id=user_id,
            expiration_date=form.data['expiration_date'],
            quantity=form.data['quantity'],
            measurement_id=form.data['measurement_id']
        )
        db.session.add(item)
    if form.errors:
        return {"errors": validation_errors_to_error_messages(form.errors)}
    else:
        db.session.commit()
        return {"inventory": user.inventory()}
示例#8
0
def sign_up():
    """
    Creates a new user and logs them in
    """
    form = SignUpForm()
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        user = User(
            name=form.data['name'],
            username=form.data['username'],
            email=form.data['email'],
            password=form.data['password'],
            profilePicture=
            'https://group-gram.s3.amazonaws.com/blank-profile-picture-973460_640.png'
        )
        db.session.add(user)
        db.session.commit()
        login_user(user)
        return user.to_dict()
    return {'errors': validation_errors_to_error_messages(form.errors)}
def shopping_list(id):
    shopping_list = ShoppingList.query.get(id)
    if request.method == 'GET':
        return {shopping_list.id: shopping_list.to_dict()}
    elif request.method == 'PUT':
        form = ShoppingListForm()
        form['csrf_token'].data = request.cookies['csrf_token']
        if form.validate_on_submit():
            shopping_list.name = form.data['name']
            db.session.add(shopping_list)
            db.session.commit()
            return shopping_list.to_dict()
    elif request.method == 'DELETE':
        form = DeleteShoppingListForm()
        form['csrf_token'].data = request.cookies['csrf_token']
        if form.validate_on_submit():
            db.session.delete(shopping_list)
            db.session.commit()
            return 'Shopping List Deleted'
    return {'errors': validation_errors_to_error_messages(form.errors)}
def edit_shopping_list_items(id, item_id):
    item = ShoppingListItem.query.get(item_id)
    shopping_list = ShoppingList.query.get(id)
    form = ShoppingListItemForm()
    if request.method == 'PUT':
        form['csrf_token'].data = request.cookies['csrf_token']
        if form.validate_on_submit():
            item.measurement_id = form.data['measurement_id']
            item.quantity = form.data['quantity']
            db.session.add(item)
    # PATCH Requests are solely for updating the in cart status
    if request.method == 'PATCH':
        item.in_cart = not item.in_cart
        db.session.add(item)
    if request.method == 'DELETE':
        db.session.delete(item)
    if (form.errors):
        return {'errors': validation_errors_to_error_messages(form.errors)}
    else:
        db.session.commit()
        return {shopping_list.id: shopping_list.to_dict()}