diff options
Diffstat (limited to 'src/Store/Book.java')
-rw-r--r-- | src/Store/Book.java | 72 |
1 files changed, 50 insertions, 22 deletions
diff --git a/src/Store/Book.java b/src/Store/Book.java index 4232d77..fe2d63e 100644 --- a/src/Store/Book.java +++ b/src/Store/Book.java @@ -164,38 +164,66 @@ public class Book { public static DataListener<JSONMessage> getListHandler(boolean availableOnly) { return ((client, data, ackSender) -> { - ArrayList<Book> books = getAll(availableOnly); - client.sendEvent(availableOnly ? "availableBooksList" : "allBooksList", books); + Thread t = new Thread(() -> { + ArrayList<Book> books = null; + try { + books = getAll(availableOnly); + } catch (SQLException e) { + throw new RuntimeException(e); + } + client.sendEvent(availableOnly ? "availableBooksList" : "allBooksList", books); + }); + + t.start(); + t.join(); }); } public static DataListener<JSONMessage> issueHandler() { return ((client, data, ackSender) -> { - Map d = data.getData(); - - int userId = (int) d.get("id"); - Book b = new Book((int) d.get("bookId")); - - if (b.issue(userId)) { - client.sendEvent("issued"); - } else { - client.sendEvent("alreadyIssued"); - } + Thread t = new Thread(() -> { + Map d = data.getData(); + + int userId = (int) d.get("id"); + Book b = new Book((int) d.get("bookId")); + + try { + if (b.issue(userId)) { + client.sendEvent("issued"); + } else { + client.sendEvent("alreadyIssued"); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + }); + + t.start(); + t.join(); }); } public static DataListener<JSONMessage> returnHandler() { return ((client, data, ackSender) -> { - Map d = data.getData(); - - int userId = (int) d.get("id"); - Book b = new Book((int) d.get("bookId")); - - if (b.returnBook(userId)) { - client.sendEvent("returned"); - } else { - client.sendEvent("returnFailed"); - } + Thread t = new Thread(() -> { + Map d = data.getData(); + + int userId = (int) d.get("id"); + Book b = new Book((int) d.get("bookId")); + + try { + if (b.returnBook(userId)) { + client.sendEvent("returned"); + } else { + client.sendEvent("returnFailed"); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + }); + + t.start(); + t.join(); }); } |