diff --git a/build.gradle b/build.gradle index 3d91a94..297866c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.2.5' - id 'io.spring.dependency-management' version '1.1.4' + id 'org.springframework.boot' version '2.6.7' + id 'io.spring.dependency-management' version '1.1.0' id 'war' } @@ -9,7 +9,7 @@ version = '0.0.1-SNAPSHOT' java { - sourceCompatibility = '21' + sourceCompatibility = '17' } repositories { diff --git a/src/main/java/org/ntlab/citrusserver/repositories/FavoriteManager.java b/src/main/java/org/ntlab/citrusserver/repositories/FavoriteManager.java index 63b7611..0a87c00 100644 --- a/src/main/java/org/ntlab/citrusserver/repositories/FavoriteManager.java +++ b/src/main/java/org/ntlab/citrusserver/repositories/FavoriteManager.java @@ -65,21 +65,6 @@ } -// //delete -// //accountIdが本(bookId)を消した時、otherAccountIdが消える -// public void removeFavoritedByBookId(String accountId, int bookId) { -// for (String otherAccountId: favoritedMap.keySet()) { -// favoritedMap.get(accountId).remove(bookId); -// } -// } -// -// //delete -// //accountIdが消えた時、bookIdとotherAccountIdが消える -// public void removeFavoritedByAccountId(String accountId) { -// favoritedMap.remove(accountId); -// } - - //favorites //get @@ -117,27 +102,29 @@ favoritesMap.get(accountId).get(otherAccountId).remove(bookId); } - //delete - //アカウントが消去されたときに一緒に消す: すべて消える - public void removeFavoriteById(String accountId) { - for (String otherAccountId : favoritesMap.get(accountId).keySet()) { //favoritedの削除の処理 - for (Integer bookId : favoritesMap.get(accountId).get(otherAccountId)) { - favoritedMap.get(otherAccountId).get(bookId).remove(accountId); + + // accountを削除したいとき + public void removeFavoriteById(String accountId) { // accountIdはamika1107 + favoritedMap.remove(accountId); // tedのアカウントから下全部消す + for (String otherAccountId : favoritesMap.get(accountId).keySet()) { + favoritesMap.get(accountId).remove(otherAccountId); // tesのotherから下全部 + } + + for (Integer bookId : favoritedMap.get(accountId).keySet()) { + for (String otherAccountId : favoritedMap.get(accountId).get(bookId)) { + favoritedMap.get(accountId).get(bookId).remove(otherAccountId); } } - favoritesMap.remove(accountId); //favoritesの削除の処理 - favoritedMap.remove(accountId); + favoritesMap.remove(accountId); } - //delete - //本が消されたときに一緒に消す - public void removeFavoriteByBookID(String accountId, Integer bookId) { - for (String otherAccountId : favoritedMap.get(accountId).get(bookId)) { //favoritesの処理 - favoritesMap.get(otherAccountId).get(accountId).remove(bookId); + // bookIdを削除したいとき + public void removeFavoriteByBookID(String accountId, Integer bookId) { // accountIdはamika1107 + for (String otherAccountId : favoritedMap.get(accountId).get(bookId)){ + favoritesMap.get(otherAccountId).get(accountId).remove(bookId); // tesのbookId を削除 } - favoritedMap.get(accountId).remove(bookId); //favoritedの処理 + favoritedMap.get(accountId).remove(bookId); // tedのbookIdを消したいとき } - } diff --git a/src/main/java/org/ntlab/citrusserver/repositories/PublicBookManager.java b/src/main/java/org/ntlab/citrusserver/repositories/PublicBookManager.java index 907e5ee..bde074a 100644 --- a/src/main/java/org/ntlab/citrusserver/repositories/PublicBookManager.java +++ b/src/main/java/org/ntlab/citrusserver/repositories/PublicBookManager.java @@ -11,7 +11,8 @@ @Repository public class PublicBookManager implements IBookListener{ - private final HashMap> publicBooks = new HashMap<>(); + private final HashMap> publicBooks = new HashMap<>(); private final FavoriteManager favoriteManager; @@ -28,6 +29,8 @@ return books; } + + public ArrayList getAllPublicBooks(int sortBy){ return sort(getAllPublicBooks(), sortBy); } @@ -97,7 +100,9 @@ @Override public void bookDeleted(Account account, Book book) { - + if(publicBooks.containsKey(account.getId())){ + publicBooks.get(account.getId()).remove(book); + } } private ArrayList sort(ArrayList books, int sortMode){ diff --git a/src/main/java/org/ntlab/citrusserver/resources/AccountsRest.java b/src/main/java/org/ntlab/citrusserver/resources/AccountsRest.java index 7484964..785dc0e 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/AccountsRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/AccountsRest.java @@ -1,7 +1,7 @@ package org.ntlab.citrusserver.resources; -import jakarta.ws.rs.*; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; import org.ntlab.citrusserver.entities.Account; import org.ntlab.citrusserver.repositories.*; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/org/ntlab/citrusserver/resources/BooksRest.java b/src/main/java/org/ntlab/citrusserver/resources/BooksRest.java index 27ef254..2fd6a5c 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/BooksRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/BooksRest.java @@ -1,8 +1,8 @@ package org.ntlab.citrusserver.resources; -import jakarta.ws.rs.*; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; import org.ntlab.citrusserver.entities.Book; import org.ntlab.citrusserver.repositories.AccountManager; import org.ntlab.citrusserver.repositories.BookManager; @@ -67,7 +67,9 @@ public Book getBook(@PathParam("account_id") String account_id, @PathParam("book_id") Integer book_id, @QueryParam("token") String token){ accountCheck(account_id); - tokenCheck(account_id, token); + if (!bookManager.getPublicity(account_id, book_id)){ + tokenCheck(account_id, token); + } return bookManager.getBook(account_id, book_id); } /// 本の削除 diff --git a/src/main/java/org/ntlab/citrusserver/resources/FavoritedRest.java b/src/main/java/org/ntlab/citrusserver/resources/FavoritedRest.java index 9c5714c..5a5a176 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/FavoritedRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/FavoritedRest.java @@ -1,8 +1,9 @@ package org.ntlab.citrusserver.resources; -import jakarta.ws.rs.*; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + import org.ntlab.citrusserver.repositories.AccountManager; import org.ntlab.citrusserver.repositories.FavoriteManager; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/org/ntlab/citrusserver/resources/FavoritesRest.java b/src/main/java/org/ntlab/citrusserver/resources/FavoritesRest.java index c90074a..43d30db 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/FavoritesRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/FavoritesRest.java @@ -1,9 +1,9 @@ package org.ntlab.citrusserver.resources; -import jakarta.ws.rs.*; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; import org.ntlab.citrusserver.repositories.AccountManager; import org.ntlab.citrusserver.repositories.FavoriteManager; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/org/ntlab/citrusserver/resources/HelloWorldRest.java b/src/main/java/org/ntlab/citrusserver/resources/HelloWorldRest.java index d612750..2e97c7f 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/HelloWorldRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/HelloWorldRest.java @@ -1,7 +1,7 @@ package org.ntlab.citrusserver.resources; -import jakarta.ws.rs.*; -import jakarta.ws.rs.core.MediaType; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; import org.springframework.stereotype.Component; @Path("/helloworld") diff --git a/src/main/java/org/ntlab/citrusserver/resources/PublicBooksRest.java b/src/main/java/org/ntlab/citrusserver/resources/PublicBooksRest.java index 192022f..4820154 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/PublicBooksRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/PublicBooksRest.java @@ -1,7 +1,7 @@ package org.ntlab.citrusserver.resources; -import jakarta.ws.rs.*; -import jakarta.ws.rs.core.MediaType; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; import org.ntlab.citrusserver.entities.Book; import org.ntlab.citrusserver.repositories.PublicBookManager; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/org/ntlab/citrusserver/resources/ScheduleRest.java b/src/main/java/org/ntlab/citrusserver/resources/ScheduleRest.java index 5d08c8d..f880c8a 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/ScheduleRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/ScheduleRest.java @@ -1,11 +1,11 @@ package org.ntlab.citrusserver.resources; -import jakarta.ws.rs.core.Response; +import javax.ws.rs.core.Response; import org.ntlab.citrusserver.entities.Schedule; import org.ntlab.citrusserver.repositories.AccountManager; import org.ntlab.citrusserver.repositories.ScheduleManager; -import jakarta.ws.rs.*; -import jakarta.ws.rs.core.MediaType; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; diff --git a/src/main/java/org/ntlab/citrusserver/resources/TodoRest.java b/src/main/java/org/ntlab/citrusserver/resources/TodoRest.java index 22c1f7d..50bdee9 100644 --- a/src/main/java/org/ntlab/citrusserver/resources/TodoRest.java +++ b/src/main/java/org/ntlab/citrusserver/resources/TodoRest.java @@ -1,11 +1,12 @@ package org.ntlab.citrusserver.resources; -import jakarta.ws.rs.*; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; import org.apache.coyote.http11.upgrade.UpgradeServletOutputStream; import org.ntlab.citrusserver.entities.Todo; import org.ntlab.citrusserver.repositories.AccountManager; +import org.ntlab.citrusserver.repositories.BookManager; import org.ntlab.citrusserver.repositories.TodoManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -18,11 +19,13 @@ private final TodoManager todoManager; private final AccountManager accountManager; + private final BookManager bookManager; @Autowired - public TodoRest(TodoManager todoManager, AccountManager accountManager) { + public TodoRest(TodoManager todoManager, AccountManager accountManager, BookManager bookManager) { this.todoManager = todoManager; this.accountManager = accountManager; + this.bookManager = bookManager; } //test用 @@ -39,7 +42,7 @@ @GET @Produces(MediaType.APPLICATION_JSON) public HashMap>>> getAllTodos(@PathParam("account_id") String account_id, @PathParam("book_id") Integer book_id, @QueryParam("token") String token) { - if (accountManager.checkToken(account_id, token)) { + if (accountManager.checkToken(account_id, token) || bookManager.getPublicity(account_id, book_id)) { return todoManager.getAllTodos(account_id, book_id); } return null; @@ -50,7 +53,7 @@ @GET @Produces(MediaType.APPLICATION_JSON) public HashMap> getTodosByMonth(@PathParam("account_id") String account_id, @PathParam("book_id") Integer book_id, @PathParam("year") Integer year, @PathParam("month") Integer month, @QueryParam("token") String token) { - if (accountManager.checkToken(account_id, token)) { + if (accountManager.checkToken(account_id, token) || bookManager.getPublicity(account_id, book_id)) { return todoManager.getTodosByMonth(account_id, book_id, year, month); } return null; @@ -61,7 +64,7 @@ @GET @Produces(MediaType.APPLICATION_JSON) public HashMap getTodosByDay(@PathParam("account_id") String account_id, @PathParam("book_id") Integer book_id, @PathParam("year") Integer year, @PathParam("month") Integer month, @PathParam("day") Integer day, @QueryParam("token") String token) { - if (accountManager.checkToken(account_id, token)) { + if (accountManager.checkToken(account_id, token) || bookManager.getPublicity(account_id, book_id)) { return todoManager.getTodosByDay(account_id, book_id, year, month, day); } return null; @@ -72,7 +75,7 @@ @GET @Produces(MediaType.APPLICATION_JSON) public Todo getTodoById(@PathParam("account_id") String account_id, @PathParam("book_id") Integer book_id, @PathParam("year") Integer year, @PathParam("month") Integer month, @PathParam("day") Integer day, @PathParam("todo_id") Integer todo_id, @QueryParam("token") String token) { - if (accountManager.checkToken(account_id, token)) { + if (accountManager.checkToken(account_id, token) || bookManager.getPublicity(account_id, book_id)) { Todo todo = todoManager.getTodoById(account_id, book_id, year, month, day, todo_id); return todo; }