Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2ce4bae

Browse files
writing "random book" functionality
1 parent cc8d6ba commit 2ce4bae

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

‎src/main/java/com/example/randombook/book/BookController.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,13 @@ public List<Book> findAllByCategory(@PathVariable int id_category) {
2626
return dao.findAllByCategory(id_category);
2727
}
2828

29+
@GetMapping("/random")
30+
public Optional<Book> findRandomBook(@RequestParam(value = "category", defaultValue = "0") int id_category) {
31+
return dao.findRandomBook(id_category);
32+
}
33+
2934
@GetMapping("/{id}")
30-
public Optional<Book> findOne(@PathVariable int id) {
35+
public Optional<Book> findById(@PathVariable int id) {
3136
return dao.findById(id);
3237
}
3338

‎src/main/java/com/example/randombook/book/BookDAO.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public interface BookDAO {
77
Optional<Book> findById(int id);
88
List<Book> findAll();
99
List<Book> findAllByCategory(int id_category);
10+
Optional<Book> findRandomBook(int id_category);
1011
Book create(Book book);
1112
Book update(Book book, int id);
1213
void delete(int id_book);

‎src/main/java/com/example/randombook/book/JdbcBookDAO.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,19 @@ public List<Book> findAllByCategory(int id_category) {
5151
return jdbcTemplate.query(sql, rowMapper, id_category);
5252
}
5353

54+
@Override
55+
public Optional<Book> findRandomBook(int id_category) {
56+
List<Book> books;
57+
if (id_category > 0) {
58+
books = findAllByCategory(id_category);
59+
} else {
60+
books = findAll();
61+
}
62+
// generating the index using Math.random()
63+
int index = (int)(Math.random() * books.size());
64+
return Optional.of(books.get(index));
65+
}
66+
5467
@Override
5568
public Book create(Book book) {
5669
Map<String,Object> parameters = new HashMap<>();

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /