Merge branch 'session' into Develop

This commit is contained in:
OzzieIsaacs
2020-12-08 11:49:39 +01:00
15 changed files with 12911 additions and 927 deletions
+33 -9
View File
@@ -43,6 +43,7 @@ from flask_login import current_user
from werkzeug.datastructures import Headers
from sqlalchemy import func
from sqlalchemy.sql.expression import and_, or_
from sqlalchemy.exc import OperationalError
from sqlalchemy.orm import load_only
from sqlalchemy.exc import StatementError
import requests
@@ -451,8 +452,10 @@ def HandleTagCreate():
items_unknown_to_calibre = add_items_to_shelf(items, shelf)
if items_unknown_to_calibre:
log.debug("Received request to add unknown books to a collection. Silently ignoring items.")
ub.session.commit()
try:
ub.session.commit()
except OperationalError:
ub.session.rollback()
return make_response(jsonify(str(shelf.uuid)), 201)
@@ -484,7 +487,10 @@ def HandleTagUpdate(tag_id):
shelf.name = name
ub.session.merge(shelf)
ub.session.commit()
try:
ub.session.commit()
except OperationalError:
ub.session.rollback()
return make_response(' ', 200)
@@ -536,7 +542,10 @@ def HandleTagAddItem(tag_id):
log.debug("Received request to add an unknown book to a collection. Silently ignoring item.")
ub.session.merge(shelf)
ub.session.commit()
try:
ub.session.commit()
except OperationalError:
ub.session.rollback()
return make_response('', 201)
@@ -577,7 +586,10 @@ def HandleTagRemoveItem(tag_id):
shelf.books.filter(ub.BookShelf.book_id == book.id).delete()
except KeyError:
items_unknown_to_calibre.append(item)
ub.session.commit()
try:
ub.session.commit()
except OperationalError:
ub.session.rollback()
if items_unknown_to_calibre:
log.debug("Received request to remove an unknown book to a collecition. Silently ignoring item.")
@@ -623,7 +635,10 @@ def sync_shelves(sync_token, sync_results):
"ChangedTag": tag
})
sync_token.tags_last_modified = new_tags_last_modified
ub.session.commit()
try:
ub.session.commit()
except OperationalError:
ub.session.rollback()
# Creates a Kobo "Tag" object from a ub.Shelf object
@@ -704,7 +719,10 @@ def HandleStateRequest(book_uuid):
abort(400, description="Malformed request data is missing 'ReadingStates' key")
ub.session.merge(kobo_reading_state)
ub.session.commit()
try:
ub.session.commit()
except OperationalError:
ub.session.rollback()
return jsonify({
"RequestResult": "Success",
"UpdateResults": [update_results_response],
@@ -742,7 +760,10 @@ def get_or_create_reading_state(book_id):
kobo_reading_state.statistics = ub.KoboStatistics()
book_read.kobo_reading_state = kobo_reading_state
ub.session.add(book_read)
ub.session.commit()
try:
ub.session.commit()
except OperationalError:
ub.session.rollback()
return book_read.kobo_reading_state
@@ -845,7 +866,10 @@ def HandleBookDeletionRequest(book_uuid):
archived_book.last_modified = datetime.datetime.utcnow()
ub.session.merge(archived_book)
ub.session.commit()
try:
ub.session.commit()
except OperationalError:
ub.session.rollback()
return ("", 204)