diff --git a/src/main/java/ru/ip/labworks/labworks/bookshop/controller/AuthorController.java b/src/main/java/ru/ip/labworks/labworks/bookshop/controller/AuthorController.java index 018ff80..269f188 100644 --- a/src/main/java/ru/ip/labworks/labworks/bookshop/controller/AuthorController.java +++ b/src/main/java/ru/ip/labworks/labworks/bookshop/controller/AuthorController.java @@ -26,6 +26,11 @@ public class AuthorController { return authorService.findAllAuthors().stream().map(AuthorDto::new).toList(); } + @GetMapping("/{id}/books") + public List getAuthorBooks(@PathVariable Long id){ + return authorService.authorBooks(id).stream().map(BookDto::new).toList(); + } + @PostMapping public AuthorDto createAuthor(@RequestBody @Valid AuthorDto authorDto) throws IOException { return new AuthorDto(authorService.addAuthor(authorDto)); diff --git a/src/main/java/ru/ip/labworks/labworks/bookshop/controller/BookController.java b/src/main/java/ru/ip/labworks/labworks/bookshop/controller/BookController.java index 51c69c2..10ed1c3 100644 --- a/src/main/java/ru/ip/labworks/labworks/bookshop/controller/BookController.java +++ b/src/main/java/ru/ip/labworks/labworks/bookshop/controller/BookController.java @@ -26,6 +26,11 @@ public class BookController { return bookService.findAllBooks().stream().map(BookDto::new).toList(); } + @GetMapping("/{id}/genres") + public List getBookGenres(@PathVariable Long id){ + return bookService.bookGenres(id).stream().map(GenreDto::new).toList(); + } + @PostMapping public BookDto createBook(@RequestBody @Valid BookDto bookDto) throws IOException { return new BookDto(bookService.addBook(bookDto)); diff --git a/src/main/java/ru/ip/labworks/labworks/bookshop/service/AuthorService.java b/src/main/java/ru/ip/labworks/labworks/bookshop/service/AuthorService.java index d9c3722..fcffae2 100644 --- a/src/main/java/ru/ip/labworks/labworks/bookshop/service/AuthorService.java +++ b/src/main/java/ru/ip/labworks/labworks/bookshop/service/AuthorService.java @@ -66,6 +66,11 @@ public class AuthorService { return authorRepository.findAll(); } + @Transactional(readOnly = true) + public List authorBooks(Long id){ + return authorRepository.findById(id).get().getBooks(); + } + @Transactional public Author updateAuthor(Long id, String firstname, String lastname, File photo){ if (!StringUtils.hasText(firstname) || !StringUtils.hasText(lastname)) { diff --git a/src/main/java/ru/ip/labworks/labworks/bookshop/service/BookService.java b/src/main/java/ru/ip/labworks/labworks/bookshop/service/BookService.java index 6b66fc5..9a0d5e9 100644 --- a/src/main/java/ru/ip/labworks/labworks/bookshop/service/BookService.java +++ b/src/main/java/ru/ip/labworks/labworks/bookshop/service/BookService.java @@ -6,6 +6,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import ru.ip.labworks.labworks.bookshop.controller.BookDto; import ru.ip.labworks.labworks.bookshop.model.Book; +import ru.ip.labworks.labworks.bookshop.model.Genre; import ru.ip.labworks.labworks.bookshop.repository.BookRepository; import ru.ip.labworks.labworks.bookshop.repository.GenreRepository; import ru.ip.labworks.labworks.util.validation.ValidatorUtil; @@ -70,6 +71,11 @@ public class BookService { return bookRepository.findAll(); } + @Transactional(readOnly = true) + public List bookGenres(Long id){ + return bookRepository.findById(id).get().getGenres(); + } + @Transactional public Book updateBook(Long id, String name, String release, File cover) { if (!StringUtils.hasText(name) || !StringUtils.hasText(release)) { diff --git a/src/main/resources/frontend/spa-vue/src/components/Footer.vue b/src/main/resources/frontend/spa-vue/src/components/Footer.vue index 990a5bd..686f94d 100644 --- a/src/main/resources/frontend/spa-vue/src/components/Footer.vue +++ b/src/main/resources/frontend/spa-vue/src/components/Footer.vue @@ -1,5 +1,5 @@