diff --git a/src/main/java/org/ntlab/citrusserver/entities/Book.java b/src/main/java/org/ntlab/citrusserver/entities/Book.java index c68c40e..08a7d4b 100644 --- a/src/main/java/org/ntlab/citrusserver/entities/Book.java +++ b/src/main/java/org/ntlab/citrusserver/entities/Book.java @@ -8,6 +8,7 @@ private String color; private String accountId; private String time; + private int favoriteCount; public Book(String accountId, Integer bookId, String title, boolean publicity, String color, String time) { @@ -19,6 +20,7 @@ this.color = color; this.time = time; + this.favoriteCount = 0; } @@ -34,4 +36,6 @@ public String getAccountId() {return accountId;} public void setTime(String t) {time = t;} public String getTime() {return time;} + public void setFavoritedCount(int f) {favoriteCount = f;} + public int getFavoritedCount() {return favoriteCount;} } diff --git a/src/main/java/org/ntlab/citrusserver/repositories/BookManager.java b/src/main/java/org/ntlab/citrusserver/repositories/BookManager.java index 5b0012e..d8ca937 100644 --- a/src/main/java/org/ntlab/citrusserver/repositories/BookManager.java +++ b/src/main/java/org/ntlab/citrusserver/repositories/BookManager.java @@ -121,6 +121,16 @@ booksMap.get(accountId).get(bookId).setColor(color); } + public void registerFavoriteCount(String accountId, Integer bookId){ + int favoriteCount = booksMap.get(accountId).get(bookId).getFavoritedCount(); + booksMap.get(accountId).get(bookId).setFavoritedCount(favoriteCount + 1); + } + + public void unregisterFavoriteCount(String accountId, Integer bookId){ + int favoriteCount = booksMap.get(accountId).get(bookId).getFavoritedCount(); + booksMap.get(accountId).get(bookId).setFavoritedCount(favoriteCount - 1); + } + @Override public void accountDeleted(Account account) { if(!booksMap.containsKey(account.getId())) return; diff --git a/src/main/java/org/ntlab/citrusserver/resources/BooksRest.java b/src/main/java/org/ntlab/citrusserver/resources/BooksRest.java index 02dd8f3..5dcacc7 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/BooksRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/BooksRest.java @@ -147,6 +147,26 @@ return "success"; } + @Path("/{account_id}/books/{book_id}/favoriteCount") + @PUT + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) + public String registerFavoriteCount(@PathParam("account_id") String account_id, @PathParam("book_id") Integer book_id){ + + accountCheck(account_id); + bookManager.registerFavoriteCount(account_id, book_id); + return "success"; + } + + @Path("/{account_id}/books/{book_id}/favoriteCount") + @PUT + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) + public String unregisterFavoriteCount(@PathParam("account_id") String account_id, @PathParam("book_id") Integer book_id){ + + accountCheck(account_id); + bookManager.unregisterFavoriteCount(account_id, book_id); + return "success"; + } + ///--------------------------------------------------------------------- ///private ///---------------------------------------------------------------------