示例#1
0
def delete_category(cat_id):
    """Delete a category"""

    if 'username' not in login_session:
        return render_template('forbidden.html')
    crud.delete_category(cat_id)
    flash(u'Category Successfully Deleted', 'success')
    return redirect(url_for('main'))
示例#2
0
async def delete_category(id: int, db: Session = Depends(get_db)):
    return crud.delete_category(id=id, db=db)
 async def mutate(root, info, id):
     try:
         category = crud.delete_category(db=database.SessionLocal(), id=id)
         return DeleteCategory(success=True, category=category)
     except:
         raise GraphQLError('The category could not be deleted!')
示例#4
0
 def Destroy(self, request, context):
     response = category_pb2.Category()
     response = crud.delete_category(request.id, request.user_id)
     return response
示例#5
0
def get_and_update_categories():
    """Gets or updates a user's categories"""

    if session.get("user_id"):
        user_id = session["user_id"]

        if request.method == "GET":
            categories = []

            category_objects = crud.get_all_user_categories(user_id)

            for category_object in category_objects:

                dict_category = category_object.to_dict()
                categories.append(dict_category)

            return jsonify({"categories": categories})

        elif request.method == "POST":
            if request.json.get("label"):
                label = request.json.get("label")

                user = crud.get_user_by_id(user_id)

                if crud.get_category_by_label(user_id, label):
                    return ({
                        "error":
                        f"{label} is already in {user.first_name}'s bookshelf!"
                    })

                new_category = crud.create_category(user_id, label)

                return jsonify({
                    "success":
                    f"{new_category.label} has been added to {user.first_name}'s bookshelf!"
                })
            else:
                old_label = request.json.get("old_label")
                new_label = request.json.get("new_label")

                crud.update_category_label(user_id, old_label, new_label)

                return jsonify({
                    "success": f"{old_label} has been changed to {new_label}!",
                    "label": new_label
                })

        elif request.method == "PUT":
            label = request.json.get("label")
            book_dict = request.json.get("book")
            isbn = book_dict["id"]
            book = crud.get_book_by_isbn(isbn)
            category = crud.get_category_by_label(user_id, label)

            if not book:
                authors = ""
                for author in book_dict["volumeInfo"]["authors"]:
                    authors += f"{author} "
                page_count = book_dict["volumeInfo"].get("pageCount")
                if not page_count:
                    page_count = 000
                book = crud.create_book(
                    isbn, book_dict["volumeInfo"]["title"], authors,
                    book_dict["volumeInfo"]["description"], page_count,
                    book_dict["volumeInfo"]["imageLinks"]["thumbnail"])

            if not category:
                category = crud.create_category(user_id, label)

                added_books = crud.create_book_category(book, category)
                return jsonify({
                    "success":
                    f"""A new category, {category.label}, has been added to your bookshelf and {book.title} has been added to it"""
                })

            if book in crud.get_all_books_in_category(user_id, label):
                return jsonify({
                    "error":
                    f"{book.title} is already in your {category.label} books"
                })

            added_books = crud.create_book_category(book, category)
            return jsonify({
                "success":
                f"{book.title} has been added to {category.label} books"
            })

        elif request.method == "DELETE":
            if request.json.get("label"):
                label = request.json.get("label")
                crud.delete_category(label, user_id)

                return jsonify({
                    "success":
                    f"{label} has successfully been removed from your bookshelf.",
                    "label": ""
                })

            else:
                label = request.json.get("category")
                isbn = request.json.get("isbn")
                title = request.json.get("title")

                this_category = crud.get_category_by_label(user_id, label)

                crud.remove_book_from_category(isbn, this_category.id)

                return jsonify({
                    "success":
                    f"{title} has successfully been removed from {label}.",
                })

    else:
        return jsonify({"error": "User must be logged in to view this page."})