示例#1
0
文件: views.py 项目: lpdrabek/eng-api
def book_add():
    session = Session()
    authorid = None
    title = None
    isbn = None
    read = 0

    if len(request.json) == 0:
        return json.dumps(return_code[1]), 400

    if "title" in request.json:
        title = request.json["title"]
    else:
        return json.dumps(return_code[2]), 400

    if "author_id" in request.json:
        authorid = request.json["author_id"]
        if not exists_in_db("id", authorid, "Author"):
            return json.dumps(return_code[5]), 400
    else:
        return json.dumps(return_code[2]), 400

    if "isbn" in request.json:
        isbn = request.json["isbn"]
    if "read" in request.json:
        read = request.json["read"]

    new_book = Book(authorid, title, isbn=isbn, book_read=read)

    if exists_in_db("title", title, "Book"):
        return json.dumps(return_code[3]), 409
    if exists_in_db("isbn", isbn, "Book"):
        return json.dumps(return_code[3]), 409

    session.add(new_book)
    session.commit()

    rsp_dict = dict(return_code[0])
    rsp_dict["added"] = new_book.as_dict(show_id=True)
    rsp_dict = json.dumps(rsp_dict)

    rsp = Response(rsp_dict)
    rsp.headers.add("Location", "/api/books/{}".format(new_book.id))

    session.close()
    return rsp, 201