From 4980cf1179693d5a577decd2440e03cc4c742b48 Mon Sep 17 00:00:00 2001 From: tas09009 Date: Wed, 13 Jan 2021 12:53:01 -0500 Subject: [PATCH 01/10] working: retrieve by category id --- .../backend/bean/Category.java | 6 ++--- .../controller/CategoryController.java | 26 +++++++++++++++---- .../repositories/CategoryRepository.java | 2 +- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/free_open_university/backend/bean/Category.java b/src/main/java/com/free_open_university/backend/bean/Category.java index ec06359..ae4a654 100644 --- a/src/main/java/com/free_open_university/backend/bean/Category.java +++ b/src/main/java/com/free_open_university/backend/bean/Category.java @@ -18,7 +18,7 @@ public class Category { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "category_id") - private int id; + private Long id; @Column(name = "name") private String name; @@ -33,11 +33,11 @@ public class Category { ) private Set books; - public int getId() { + public Long getId() { return id; } - public void setId(int id) { + public void setId(Long id) { this.id = id; } diff --git a/src/main/java/com/free_open_university/backend/controller/CategoryController.java b/src/main/java/com/free_open_university/backend/controller/CategoryController.java index 5fa5d55..30520c9 100644 --- a/src/main/java/com/free_open_university/backend/controller/CategoryController.java +++ b/src/main/java/com/free_open_university/backend/controller/CategoryController.java @@ -1,24 +1,40 @@ package com.free_open_university.backend.controller; import com.free_open_university.backend.bean.Category; +import com.free_open_university.backend.repositories.CategoryRepository; import com.free_open_university.backend.service.CategoryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Optional; import java.util.Set; @RestController -@RequestMapping("/category") +//@RequestMapping("/category") public class CategoryController { @Autowired - CategoryService categoryService; +// CategoryService categoryService; + CategoryRepository categoryRepository; - @GetMapping - public List getAllCategories() { - return categoryService.getAllCategories(); +// @GetMapping +// public List getAllCategories() { +// return categoryService.getAllCategories(); +// } + + @GetMapping("/category") + public List getAllCategories() + { + return categoryRepository.findAll(); + } + + @GetMapping("/category/{id}") + public Optional getCategoryById(@PathVariable(value="id") Long id) + { + return categoryRepository.findById(id); } } diff --git a/src/main/java/com/free_open_university/backend/repositories/CategoryRepository.java b/src/main/java/com/free_open_university/backend/repositories/CategoryRepository.java index 855b3ed..94e11c8 100644 --- a/src/main/java/com/free_open_university/backend/repositories/CategoryRepository.java +++ b/src/main/java/com/free_open_university/backend/repositories/CategoryRepository.java @@ -6,5 +6,5 @@ import java.util.List; import java.util.Set; -public interface CategoryRepository extends JpaRepository { +public interface CategoryRepository extends JpaRepository { } From ce95982b78caf633b44cf6a7f193a0733edc51cc Mon Sep 17 00:00:00 2001 From: tas09009 Date: Fri, 15 Jan 2021 16:35:35 -0500 Subject: [PATCH 02/10] created BookCategory files to filter books and categories --- .../backend/bean/BookCategory.java | 35 +++++++++++++++++++ .../backend/bean/Category.java | 20 +++++------ .../controller/BookCategoryController.java | 32 +++++++++++++++++ .../controller/CategoryController.java | 16 +++++++++ .../backend/dao/BookCategoryRepository.java | 12 +++++++ .../repositories/CategoryRepository.java | 7 ++++ .../backend/service/BookCategoryService.java | 22 ++++++++++++ .../backend/service/CategoryService.java | 6 ++++ 8 files changed, 140 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/free_open_university/backend/bean/BookCategory.java create mode 100644 src/main/java/com/free_open_university/backend/controller/BookCategoryController.java create mode 100644 src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java create mode 100644 src/main/java/com/free_open_university/backend/service/BookCategoryService.java diff --git a/src/main/java/com/free_open_university/backend/bean/BookCategory.java b/src/main/java/com/free_open_university/backend/bean/BookCategory.java new file mode 100644 index 0000000..b875878 --- /dev/null +++ b/src/main/java/com/free_open_university/backend/bean/BookCategory.java @@ -0,0 +1,35 @@ +package com.free_open_university.backend.bean; + +import javax.persistence.*; +import java.util.Set; + + +@Entity +@Table(name = "BookCategory") +public class BookCategory { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "book_id") + private Long book_id; + @Column(name = "category_id") + private Long category_id; + + + public Long getBookId() { + return book_id; + } + + public void getBookId(Long book_id) { + this.book_id = book_id; + } + + public Long getCategoryId() { + return category_id; + } + + public void setCategoryId(Long category_id) { + this.category_id = category_id; + } + +} diff --git a/src/main/java/com/free_open_university/backend/bean/Category.java b/src/main/java/com/free_open_university/backend/bean/Category.java index ae4a654..db64454 100644 --- a/src/main/java/com/free_open_university/backend/bean/Category.java +++ b/src/main/java/com/free_open_university/backend/bean/Category.java @@ -23,7 +23,7 @@ public class Category { @Column(name = "name") private String name; @Column(name = "image_id") - private long imageId; + private Long imageId; @ManyToMany(cascade = CascadeType.ALL) @JoinTable ( @@ -49,19 +49,19 @@ public void setName(String name) { this.name = name; } - public Set getBooks() { - return books; - } - - public void setBooks(Set books) { - this.books = books; - } +// public Set getBooks() { +// return books; +// } +// +// public void setBooks(Set books) { +// this.books = books; +// } - public long getImageId() { + public Long getImageId() { return imageId; } - public void setImageId(long imageId) { + public void setImageId(Long imageId) { this.imageId = imageId; } } diff --git a/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java b/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java new file mode 100644 index 0000000..bfda329 --- /dev/null +++ b/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java @@ -0,0 +1,32 @@ +package com.free_open_university.backend.controller; + +import com.free_open_university.backend.bean.BookCategory; +import com.free_open_university.backend.bean.Category; +import com.free_open_university.backend.dao.BookCategoryRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Optional; + +@RestController +public class BookCategoryController { + + @Autowired + BookCategoryRepository bookCategoryRepository; + + @GetMapping("/bookcategory") + public List getAllBookCategories() + { + return bookCategoryRepository.findAll(); + } + + + @GetMapping("/bookcategory/{category_id}") + public Optional getBookCategoryById(@PathVariable(value="category_id") Long category_id) + { + return bookCategoryRepository.findById(category_id); + } +} diff --git a/src/main/java/com/free_open_university/backend/controller/CategoryController.java b/src/main/java/com/free_open_university/backend/controller/CategoryController.java index 30520c9..48e620c 100644 --- a/src/main/java/com/free_open_university/backend/controller/CategoryController.java +++ b/src/main/java/com/free_open_university/backend/controller/CategoryController.java @@ -1,6 +1,9 @@ package com.free_open_university.backend.controller; +import com.free_open_university.backend.bean.Book; +import com.free_open_university.backend.bean.BookCategory; import com.free_open_university.backend.bean.Category; +import com.free_open_university.backend.repositories.BookRepository; import com.free_open_university.backend.repositories.CategoryRepository; import com.free_open_university.backend.service.CategoryService; import org.springframework.beans.factory.annotation.Autowired; @@ -20,6 +23,7 @@ public class CategoryController { @Autowired // CategoryService categoryService; CategoryRepository categoryRepository; + BookRepository bookRepository; // @GetMapping // public List getAllCategories() { @@ -37,4 +41,16 @@ public Optional getCategoryById(@PathVariable(value="id") Long id) { return categoryRepository.findById(id); } + +// @GetMapping("/category/{id}/books") +// public List getBooksbyCategory(@PathVariable(value="books") Long books) +// { +// return categoryRepository.findBooksByCategory(books); +// } + +// @GetMapping("/category/{id}/books") +// public List getBooksbyCategory(@PathVariable(value="books") Long book_id) +// { +// return categoryRepository.findBooksByCategory(book_id); +// } } diff --git a/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java b/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java new file mode 100644 index 0000000..c60b1ce --- /dev/null +++ b/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java @@ -0,0 +1,12 @@ +package com.free_open_university.backend.dao; + +import com.free_open_university.backend.bean.BookCategory; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface BookCategoryRepository extends JpaRepository { + +// List findBooksByBookCategory(Long category_id); + +} diff --git a/src/main/java/com/free_open_university/backend/repositories/CategoryRepository.java b/src/main/java/com/free_open_university/backend/repositories/CategoryRepository.java index 94e11c8..d7a0941 100644 --- a/src/main/java/com/free_open_university/backend/repositories/CategoryRepository.java +++ b/src/main/java/com/free_open_university/backend/repositories/CategoryRepository.java @@ -1,10 +1,17 @@ package com.free_open_university.backend.repositories; +//import com.free_open_university.backend.bean.Book; +import com.free_open_university.backend.bean.BookCategory; import com.free_open_university.backend.bean.Category; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; +import java.util.Optional; import java.util.Set; public interface CategoryRepository extends JpaRepository { + +// List findBooksByCategory(Long book_id); + } + diff --git a/src/main/java/com/free_open_university/backend/service/BookCategoryService.java b/src/main/java/com/free_open_university/backend/service/BookCategoryService.java new file mode 100644 index 0000000..d72c200 --- /dev/null +++ b/src/main/java/com/free_open_university/backend/service/BookCategoryService.java @@ -0,0 +1,22 @@ +package com.free_open_university.backend.service; + +import com.free_open_university.backend.bean.BookCategory; +import com.free_open_university.backend.bean.Category; +import com.free_open_university.backend.dao.BookCategoryRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class BookCategoryService { + + @Autowired + BookCategoryRepository bookCategoryRepository; + + public List getAllBookCategories() { + return bookCategoryRepository.findAll(); + } + +// public List getBooksbyCategory(Long category_id) { return bookCategoryRepository.findBooksByCategory(category_id); } +} diff --git a/src/main/java/com/free_open_university/backend/service/CategoryService.java b/src/main/java/com/free_open_university/backend/service/CategoryService.java index 2152d1a..8314194 100644 --- a/src/main/java/com/free_open_university/backend/service/CategoryService.java +++ b/src/main/java/com/free_open_university/backend/service/CategoryService.java @@ -1,11 +1,14 @@ package com.free_open_university.backend.service; +import com.free_open_university.backend.bean.Book; +import com.free_open_university.backend.bean.BookCategory; import com.free_open_university.backend.bean.Category; import com.free_open_university.backend.repositories.CategoryRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Optional; import java.util.Set; @Service @@ -18,4 +21,7 @@ public List getAllCategories() { return categoryRepository.findAll(); } +// public List getBooksbyCategory(Long books) { return categoryRepository.findBooksByCategory(books); } + +// public List getBooksbyCategory(Long book_id) { return categoryRepository.findBooksByCategory(book_id); } } \ No newline at end of file From e8716ff6ea7a548273abfd0160588f44d2c0a0f1 Mon Sep 17 00:00:00 2001 From: tas09009 Date: Sun, 17 Jan 2021 14:36:40 -0500 Subject: [PATCH 03/10] bookcategory APIs working --- .../backend/bean/BookCategory.java | 22 +++++++++++-------- .../controller/BookCategoryController.java | 18 +++++++++------ .../backend/dao/BookCategoryRepository.java | 3 ++- .../backend/service/BookCategoryService.java | 10 +++++---- 4 files changed, 32 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/free_open_university/backend/bean/BookCategory.java b/src/main/java/com/free_open_university/backend/bean/BookCategory.java index b875878..cf99fa4 100644 --- a/src/main/java/com/free_open_university/backend/bean/BookCategory.java +++ b/src/main/java/com/free_open_university/backend/bean/BookCategory.java @@ -10,11 +10,19 @@ public class BookCategory { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "book_id") - private Long book_id; @Column(name = "category_id") private Long category_id; + @Column(name = "book_id") + private Long book_id; + + public Long getCategoryId() { + return category_id; + } + + public void setCategoryId(Long category_id) { + this.category_id = category_id; + } public Long getBookId() { return book_id; @@ -24,12 +32,8 @@ public void getBookId(Long book_id) { this.book_id = book_id; } - public Long getCategoryId() { - return category_id; + @Override + public String toString() { + return "BookCategory [category_id=" + category_id + ", book_id=" + book_id + "]"; } - - public void setCategoryId(Long category_id) { - this.category_id = category_id; - } - } diff --git a/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java b/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java index bfda329..35ce939 100644 --- a/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java +++ b/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java @@ -3,19 +3,25 @@ import com.free_open_university.backend.bean.BookCategory; import com.free_open_university.backend.bean.Category; import com.free_open_university.backend.dao.BookCategoryRepository; +import com.free_open_university.backend.service.BookCategoryService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.Set; @RestController +//@RequestMapping("/api") public class BookCategoryController { @Autowired BookCategoryRepository bookCategoryRepository; + BookCategoryService bookCategoryService; + @GetMapping("/bookcategory") public List getAllBookCategories() @@ -23,10 +29,8 @@ public List getAllBookCategories() return bookCategoryRepository.findAll(); } - @GetMapping("/bookcategory/{category_id}") - public Optional getBookCategoryById(@PathVariable(value="category_id") Long category_id) - { - return bookCategoryRepository.findById(category_id); + public List findByIds(@PathVariable () List category_id) { + return bookCategoryRepository.findAllById(category_id); } } diff --git a/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java b/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java index c60b1ce..7ac4102 100644 --- a/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java +++ b/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java @@ -4,9 +4,10 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; +import java.util.Optional; public interface BookCategoryRepository extends JpaRepository { // List findBooksByBookCategory(Long category_id); - +// List findAllById(Long category_id); } diff --git a/src/main/java/com/free_open_university/backend/service/BookCategoryService.java b/src/main/java/com/free_open_university/backend/service/BookCategoryService.java index d72c200..3da2991 100644 --- a/src/main/java/com/free_open_university/backend/service/BookCategoryService.java +++ b/src/main/java/com/free_open_university/backend/service/BookCategoryService.java @@ -7,6 +7,7 @@ import org.springframework.stereotype.Service; import java.util.List; +import java.util.Optional; @Service public class BookCategoryService { @@ -14,9 +15,10 @@ public class BookCategoryService { @Autowired BookCategoryRepository bookCategoryRepository; - public List getAllBookCategories() { - return bookCategoryRepository.findAll(); - } +// public List getAllBookCategories() { +// return bookCategoryRepository.findAll(); +// } + +// public List getBooksbyCategoryId(Long category_id) { return bookCategoryRepository.findAllById(category_id); } -// public List getBooksbyCategory(Long category_id) { return bookCategoryRepository.findBooksByCategory(category_id); } } From 0580723c93c34c337745f5933ca677d8bb35c7da Mon Sep 17 00:00:00 2001 From: tas09009 Date: Tue, 19 Jan 2021 12:09:02 -0500 Subject: [PATCH 04/10] changed book id int -> Long + started on POST function --- .../free_open_university/backend/bean/Book.java | 6 +++--- .../backend/controller/BookController.java | 14 +++++++++++--- .../backend/repositories/BookRepository.java | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/free_open_university/backend/bean/Book.java b/src/main/java/com/free_open_university/backend/bean/Book.java index c224bd1..3cf2668 100644 --- a/src/main/java/com/free_open_university/backend/bean/Book.java +++ b/src/main/java/com/free_open_university/backend/bean/Book.java @@ -24,7 +24,7 @@ public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "book_id") - private int id; + private Long id; @Column(name = "title") private String title; @@ -50,11 +50,11 @@ public class Book { // private Category categoryList; - public int getId() { + public Long getId() { return id; } - public void setId(int id) { + public void setId(Long id) { this.id = id; } diff --git a/src/main/java/com/free_open_university/backend/controller/BookController.java b/src/main/java/com/free_open_university/backend/controller/BookController.java index 5e93107..84b0234 100644 --- a/src/main/java/com/free_open_university/backend/controller/BookController.java +++ b/src/main/java/com/free_open_university/backend/controller/BookController.java @@ -2,6 +2,7 @@ import com.free_open_university.backend.bean.Book; import com.free_open_university.backend.http.Response; +import com.free_open_university.backend.repositories.BookRepository; import com.free_open_university.backend.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -15,6 +16,7 @@ public class BookController { @Autowired BookService bookService; + BookRepository bookRepository; /* @GetMapping // todo: need another path public Book getBookByTitle(@RequestParam(value = "title") String title) { @@ -42,9 +44,15 @@ public List getBookId( // } } - @PostMapping - public Response addBook(@RequestBody Book newBook) { - return bookService.addBook(newBook); +// @PostMapping +// public Response addBook(@RequestBody Book newBook) { +// return bookService.addBook(newBook); +// } + + @PostMapping("/upload") + public Book addBook(@RequestBody Book book) + { + return bookRepository.save(book); } @PostMapping("/batch_upload") diff --git a/src/main/java/com/free_open_university/backend/repositories/BookRepository.java b/src/main/java/com/free_open_university/backend/repositories/BookRepository.java index 4ddb0eb..af481b2 100644 --- a/src/main/java/com/free_open_university/backend/repositories/BookRepository.java +++ b/src/main/java/com/free_open_university/backend/repositories/BookRepository.java @@ -9,7 +9,7 @@ import java.util.Set; import java.util.Optional; -public interface BookRepository extends JpaRepository { +public interface BookRepository extends JpaRepository { Optional findByTitle(String title); From fa83b37b5dad2c9d06c41355942391d01fa3fa88 Mon Sep 17 00:00:00 2001 From: tas09009 Date: Tue, 19 Jan 2021 14:17:08 -0500 Subject: [PATCH 05/10] put + delete methods added/working --- .../backend/controller/BookController.java | 26 ++++++++++++++++--- .../backend/service/BookService.java | 7 +++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/free_open_university/backend/controller/BookController.java b/src/main/java/com/free_open_university/backend/controller/BookController.java index 84b0234..631eb61 100644 --- a/src/main/java/com/free_open_university/backend/controller/BookController.java +++ b/src/main/java/com/free_open_university/backend/controller/BookController.java @@ -5,6 +5,7 @@ import com.free_open_university.backend.repositories.BookRepository; import com.free_open_university.backend.service.BookService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -49,10 +50,20 @@ public List getBookId( // return bookService.addBook(newBook); // } - @PostMapping("/upload") - public Book addBook(@RequestBody Book book) + + @DeleteMapping("/deleteBook/{book_id}") + private void deleteBook(@PathVariable("book_id") Long id) + { + bookService.delete(id); + } + + @PostMapping("/addBook") + @ResponseStatus(HttpStatus.ACCEPTED) + private Long addBook(@RequestBody Book book) + { - return bookRepository.save(book); + bookService.saveOrUpdate(book); + return book.getId(); } @PostMapping("/batch_upload") @@ -67,4 +78,13 @@ public Response addBookBatch(@RequestBody Set books) { return new Response(true,200,"books added"); } + @PutMapping("/updateBook") + private Book updateBook(@RequestBody Book book) + { + bookService.saveOrUpdate(book); + return book; + } + + + } diff --git a/src/main/java/com/free_open_university/backend/service/BookService.java b/src/main/java/com/free_open_university/backend/service/BookService.java index 542b9f6..835afd1 100644 --- a/src/main/java/com/free_open_university/backend/service/BookService.java +++ b/src/main/java/com/free_open_university/backend/service/BookService.java @@ -26,6 +26,13 @@ public Optional getBookByTitle(String title) { return bookRepository.findByTitle(title); } + public void saveOrUpdate(Book book) + { + bookRepository.save(book); + } + + public void delete(Long id) { bookRepository.deleteById(id); } + @Transactional public Response addBook(Book newBook) { try{ From fba7f4ddfc824dfee2dda2f2fb32b1c23fd5e6fa Mon Sep 17 00:00:00 2001 From: tas09009 Date: Wed, 20 Jan 2021 10:45:44 -0500 Subject: [PATCH 06/10] all CRUD methods working --- .../backend/controller/BookController.java | 51 ++++++++++--------- .../backend/repositories/BookRepository.java | 3 +- .../backend/service/BookService.java | 23 +++++---- 3 files changed, 44 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/free_open_university/backend/controller/BookController.java b/src/main/java/com/free_open_university/backend/controller/BookController.java index 631eb61..c8959d0 100644 --- a/src/main/java/com/free_open_university/backend/controller/BookController.java +++ b/src/main/java/com/free_open_university/backend/controller/BookController.java @@ -45,20 +45,9 @@ public List getBookId( // } } -// @PostMapping -// public Response addBook(@RequestBody Book newBook) { -// return bookService.addBook(newBook); -// } - - - @DeleteMapping("/deleteBook/{book_id}") - private void deleteBook(@PathVariable("book_id") Long id) - { - bookService.delete(id); - } @PostMapping("/addBook") - @ResponseStatus(HttpStatus.ACCEPTED) +// @ResponseStatus(HttpStatus.ACCEPTED) private Long addBook(@RequestBody Book book) { @@ -66,18 +55,23 @@ private Long addBook(@RequestBody Book book) return book.getId(); } - @PostMapping("/batch_upload") - public Response addBookBatch(@RequestBody Set books) { - Response response = new Response(); - for (Book book : books) { - response = bookService.addBook(book); - if(!response.isSuccess()) { - return response; - } - } - return new Response(true,200,"books added"); + @PostMapping("/addBooks") + public List saveAllBook(@RequestBody List bookList) { + return (List) bookService.saveAllBook(bookList); + } + + @DeleteMapping("/deleteBook/{book_id}") + private void deleteBook(@PathVariable("book_id") Long id) + { + bookService.delete(id); } +// @DeleteMapping("/deleteBooks") +// public String deleteInBatch(@RequestBody List bookList) { +// bookService.deleteInBatch(bookList); +// return "All Students deleted successfully"; +// } + @PutMapping("/updateBook") private Book updateBook(@RequestBody Book book) { @@ -85,6 +79,17 @@ private Book updateBook(@RequestBody Book book) return book; } +} -} +// @PostMapping("/batch_upload") +// public Response addBookBatch(@RequestBody Set books) { +// Response response = new Response(); +// for (Book book : books) { +// response = bookService.addBook(book); +// if(!response.isSuccess()) { +// return response; +// } +// } +// return new Response(true,200,"books added"); +// } diff --git a/src/main/java/com/free_open_university/backend/repositories/BookRepository.java b/src/main/java/com/free_open_university/backend/repositories/BookRepository.java index af481b2..2a3ae20 100644 --- a/src/main/java/com/free_open_university/backend/repositories/BookRepository.java +++ b/src/main/java/com/free_open_university/backend/repositories/BookRepository.java @@ -5,11 +5,12 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; +import java.io.Serializable; import java.util.List; import java.util.Set; import java.util.Optional; -public interface BookRepository extends JpaRepository { +public interface BookRepository extends JpaRepository { Optional findByTitle(String title); diff --git a/src/main/java/com/free_open_university/backend/service/BookService.java b/src/main/java/com/free_open_university/backend/service/BookService.java index 835afd1..08a5e93 100644 --- a/src/main/java/com/free_open_university/backend/service/BookService.java +++ b/src/main/java/com/free_open_university/backend/service/BookService.java @@ -31,16 +31,21 @@ public void saveOrUpdate(Book book) bookRepository.save(book); } + public List saveAllBook(List bookList) { return bookRepository.saveAll(bookList); } + public void delete(Long id) { bookRepository.deleteById(id); } - @Transactional - public Response addBook(Book newBook) { - try{ - bookRepository.save(newBook); - return new Response(true, "book added"); - } catch (Exception e) { - e.printStackTrace(); - return new Response(false, "book not added"); - } + public void deleteInBatch(List bookList) { bookRepository.deleteInBatch(bookList); } + +// @Transactional +// public Response addBook(Book newBook) { +// try{ +// bookRepository.save(newBook); +// return new Response(true, "book added"); +// } catch (Exception e) { +// e.printStackTrace(); +// return new Response(false, "book not added"); +// } +// } } From 077bc1a8dd18cbea17921327a0e1627f45d0c19c Mon Sep 17 00:00:00 2001 From: tas09009 Date: Thu, 28 Jan 2021 18:39:52 -0500 Subject: [PATCH 07/10] added bookcategory_id column adn updated all other files. Currently the searchbycategory is not working --- database/init_script.sql | 3 +- .../backend/bean/BookCategory.java | 17 ++++++++--- .../controller/BookCategoryController.java | 28 +++++++++++++------ .../backend/dao/BookCategoryRepository.java | 14 ++++++++++ .../backend/service/BookCategoryService.java | 11 ++++++-- 5 files changed, 57 insertions(+), 16 deletions(-) diff --git a/database/init_script.sql b/database/init_script.sql index 1b99ef4..c85d44c 100644 --- a/database/init_script.sql +++ b/database/init_script.sql @@ -48,9 +48,10 @@ CREATE TABLE IF NOT EXISTS Book ( ); CREATE TABLE IF NOT EXISTS BookCategory ( + bookcategory_id INT NOT Null AUTO_INCREMENT, book_id INT NOT NULL, category_id INT NOT NULL, - PRIMARY KEY (book_id, category_id), + PRIMARY KEY (bookcategory_id, book_id, category_id), KEY fk_book (book_id), KEY fk_category (category_id), CONSTRAINT fk_book FOREIGN KEY (book_id) REFERENCES Book (book_id), diff --git a/src/main/java/com/free_open_university/backend/bean/BookCategory.java b/src/main/java/com/free_open_university/backend/bean/BookCategory.java index cf99fa4..9d47515 100644 --- a/src/main/java/com/free_open_university/backend/bean/BookCategory.java +++ b/src/main/java/com/free_open_university/backend/bean/BookCategory.java @@ -10,11 +10,20 @@ public class BookCategory { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "bookcategory_id") + private Long bookcategory_id; @Column(name = "category_id") private Long category_id; @Column(name = "book_id") private Long book_id; + public Long getBookCategoryId() { + return bookcategory_id; + } + + public void setBookCategoryId(Long bookcategory_id) { + this.bookcategory_id = bookcategory_id; + } public Long getCategoryId() { return category_id; @@ -32,8 +41,8 @@ public void getBookId(Long book_id) { this.book_id = book_id; } - @Override - public String toString() { - return "BookCategory [category_id=" + category_id + ", book_id=" + book_id + "]"; - } +// @Override +// public String toString() { +// return "BookCategory [category_id=" + category_id + ", book_id=" + book_id + "]"; +// } } diff --git a/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java b/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java index 35ce939..e284d14 100644 --- a/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java +++ b/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java @@ -1,5 +1,6 @@ package com.free_open_university.backend.controller; +import com.free_open_university.backend.bean.Book; import com.free_open_university.backend.bean.BookCategory; import com.free_open_university.backend.bean.Category; import com.free_open_university.backend.dao.BookCategoryRepository; @@ -23,14 +24,25 @@ public class BookCategoryController { BookCategoryService bookCategoryService; - @GetMapping("/bookcategory") - public List getAllBookCategories() - { - return bookCategoryRepository.findAll(); - } +// @GetMapping("/bookcategory") +// public List getAllBookCategories() +// { +// return bookCategoryRepository.findAll(); +// } + + @GetMapping + public List getAllBookCategories( + @RequestParam(value = "category_id", required = false) Long category_id) { + if (category_id != null) { + return bookCategoryService.getBooksByCategories(category_id); + } else { + return bookCategoryRepository.findAll(); + } - @GetMapping("/bookcategory/{category_id}") - public List findByIds(@PathVariable () List category_id) { - return bookCategoryRepository.findAllById(category_id); } } + +// @GetMapping("/bookcategory/{category_id}") +// public List findByIds(@PathVariable () List category_id) { +// return bookCategoryRepository.findAllById(category_id); +// } diff --git a/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java b/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java index 7ac4102..2a7d5a5 100644 --- a/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java +++ b/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java @@ -1,7 +1,9 @@ package com.free_open_university.backend.dao; +import com.free_open_university.backend.bean.Book; import com.free_open_university.backend.bean.BookCategory; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import java.util.List; import java.util.Optional; @@ -10,4 +12,16 @@ public interface BookCategoryRepository extends JpaRepository findBooksByBookCategory(Long category_id); // List findAllById(Long category_id); + + + +// @Query("SELECT new com.roytuts.spring.data.jpa.left.right.inner.cross.join.dto.JoinDto(BookCategory.category_id, BookCategory.book_id, Book.title " +// + "FROM Sale s INNER JOIN s.food f INNER JOIN f.company c") +// List fetchDataInnerJoin(); +// +// SELECT BookCategory.category_id, BookCategory.book_id, Book.title FROM BookCategory INNER JOIN Book ON BookCategory.book_id=Book.book_id; + + List findbyCategory(Long category_id); + + } diff --git a/src/main/java/com/free_open_university/backend/service/BookCategoryService.java b/src/main/java/com/free_open_university/backend/service/BookCategoryService.java index 3da2991..01f5b13 100644 --- a/src/main/java/com/free_open_university/backend/service/BookCategoryService.java +++ b/src/main/java/com/free_open_university/backend/service/BookCategoryService.java @@ -1,5 +1,6 @@ package com.free_open_university.backend.service; +import com.free_open_university.backend.bean.Book; import com.free_open_university.backend.bean.BookCategory; import com.free_open_university.backend.bean.Category; import com.free_open_university.backend.dao.BookCategoryRepository; @@ -15,9 +16,13 @@ public class BookCategoryService { @Autowired BookCategoryRepository bookCategoryRepository; -// public List getAllBookCategories() { -// return bookCategoryRepository.findAll(); -// } + public List getAllBookCategories() { + return bookCategoryRepository.findAll(); + } + + public List getBooksByCategories(Long category_id) { + return bookCategoryRepository.findbyCategory(category_id); + } // public List getBooksbyCategoryId(Long category_id) { return bookCategoryRepository.findAllById(category_id); } From 4641ed5d214c0ebd25c4d1e166c833c330336a29 Mon Sep 17 00:00:00 2001 From: tas09009 Date: Thu, 28 Jan 2021 19:52:28 -0500 Subject: [PATCH 08/10] Bookcategory_id is now working, all results are displayed --- .../backend/bean/BookCategory.java | 1 + .../controller/BookCategoryController.java | 40 ++++++++++--------- .../backend/dao/BookCategoryRepository.java | 2 +- .../backend/service/BookCategoryService.java | 12 +++--- 4 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/free_open_university/backend/bean/BookCategory.java b/src/main/java/com/free_open_university/backend/bean/BookCategory.java index 9d47515..885c5d8 100644 --- a/src/main/java/com/free_open_university/backend/bean/BookCategory.java +++ b/src/main/java/com/free_open_university/backend/bean/BookCategory.java @@ -12,6 +12,7 @@ public class BookCategory { @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "bookcategory_id") private Long bookcategory_id; + @Column(name = "category_id") private Long category_id; @Column(name = "book_id") diff --git a/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java b/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java index e284d14..e4f5201 100644 --- a/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java +++ b/src/main/java/com/free_open_university/backend/controller/BookCategoryController.java @@ -16,7 +16,7 @@ import java.util.Set; @RestController -//@RequestMapping("/api") +@RequestMapping("/bookcategory") public class BookCategoryController { @Autowired @@ -24,25 +24,29 @@ public class BookCategoryController { BookCategoryService bookCategoryService; -// @GetMapping("/bookcategory") -// public List getAllBookCategories() -// { -// return bookCategoryRepository.findAll(); -// } - - @GetMapping - public List getAllBookCategories( - @RequestParam(value = "category_id", required = false) Long category_id) { - if (category_id != null) { - return bookCategoryService.getBooksByCategories(category_id); - } else { - return bookCategoryRepository.findAll(); - } - + @GetMapping //("/bookcategory") + public List getAllBookCategories() + { + return bookCategoryRepository.findAll(); } -} -// @GetMapping("/bookcategory/{category_id}") +// @GetMapping +// public List getAllBookCategories( +// @RequestParam(value = "category_id", required = false) Long category_id) { +// if (category_id != null) { +// return bookCategoryService.getBooksByCategories(category_id); +// } else { +//// return bookCategoryService.getAllBookCategories(); +// return bookCategoryRepository.findAll(); +// } + +//// This won't work because it has to be /bookcategory/{bookcategory_id} +// @GetMapping("/bookcategory/{category_id}") // public List findByIds(@PathVariable () List category_id) { // return bookCategoryRepository.findAllById(category_id); // } + + +} + + diff --git a/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java b/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java index 2a7d5a5..f8e8809 100644 --- a/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java +++ b/src/main/java/com/free_open_university/backend/dao/BookCategoryRepository.java @@ -21,7 +21,7 @@ public interface BookCategoryRepository extends JpaRepository findbyCategory(Long category_id); +// List findbyCategory(Long category_id); } diff --git a/src/main/java/com/free_open_university/backend/service/BookCategoryService.java b/src/main/java/com/free_open_university/backend/service/BookCategoryService.java index 01f5b13..44261c9 100644 --- a/src/main/java/com/free_open_university/backend/service/BookCategoryService.java +++ b/src/main/java/com/free_open_university/backend/service/BookCategoryService.java @@ -16,13 +16,13 @@ public class BookCategoryService { @Autowired BookCategoryRepository bookCategoryRepository; - public List getAllBookCategories() { - return bookCategoryRepository.findAll(); - } +// public List getAllBookCategories() { +// return bookCategoryRepository.findAll(); +// } - public List getBooksByCategories(Long category_id) { - return bookCategoryRepository.findbyCategory(category_id); - } +// public List getBooksByCategories(Long category_id) { +// return bookCategoryRepository.findbyCategory(category_id); +// } // public List getBooksbyCategoryId(Long category_id) { return bookCategoryRepository.findAllById(category_id); } From 2ae6e11720a12190f7f8839ece20573012ec422f Mon Sep 17 00:00:00 2001 From: tas09009 Date: Wed, 10 Feb 2021 10:26:19 -0500 Subject: [PATCH 09/10] evoke hello.py using shell script --- .../bean/ExeuteShellProcessBuilder.java | 34 +++++++++++++++++++ src/main/resources/hello.py | 4 +++ src/main/resources/hello.sh | 5 +++ src/main/resources/log.txt | 24 +++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 src/main/java/com/free_open_university/backend/bean/ExeuteShellProcessBuilder.java create mode 100755 src/main/resources/hello.py create mode 100755 src/main/resources/hello.sh create mode 100644 src/main/resources/log.txt diff --git a/src/main/java/com/free_open_university/backend/bean/ExeuteShellProcessBuilder.java b/src/main/java/com/free_open_university/backend/bean/ExeuteShellProcessBuilder.java new file mode 100644 index 0000000..e3d2b0e --- /dev/null +++ b/src/main/java/com/free_open_university/backend/bean/ExeuteShellProcessBuilder.java @@ -0,0 +1,34 @@ +package com.free_open_university.backend.bean; + +import java.io.File; +import java.io.IOException; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.List; +import java.util.Map; + +public class ExeuteShellProcessBuilder { + + public static void main(String[] args) { + String[] cmd = new String[] {"src/main/resources/hello.sh"}; + ProcessBuilder pb = new ProcessBuilder(cmd); + try { + File log = new File("src/main/resources/log.txt"); + pb.redirectErrorStream(true); + pb.redirectOutput(ProcessBuilder.Redirect.appendTo(log)); + Process p = pb.start(); + BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); + String s = null; + while ((s = reader.readLine()) != null) { + System.out.println(s); + } + } catch (IOException e) { + // TODO auto-generated catch block + e.printStackTrace(); + } + } +} +//"src/main/resources/hello.py", "src/main/resources/log.txt" +//"/home/taniya/Projects/external/openu/openu_back/website-backend/src/main/resources/hello.py" \ No newline at end of file diff --git a/src/main/resources/hello.py b/src/main/resources/hello.py new file mode 100755 index 0000000..c69cd28 --- /dev/null +++ b/src/main/resources/hello.py @@ -0,0 +1,4 @@ +print("Hello World") + +x = 5 + 2 +print(x) diff --git a/src/main/resources/hello.sh b/src/main/resources/hello.sh new file mode 100755 index 0000000..10fff19 --- /dev/null +++ b/src/main/resources/hello.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +echo "hello.sh has been executed by java" +echo "testing again" +python3 /home/taniya/Projects/external/openu/openu_back/website-backend/src/main/resources/hello.py \ No newline at end of file diff --git a/src/main/resources/log.txt b/src/main/resources/log.txt new file mode 100644 index 0000000..2df8127 --- /dev/null +++ b/src/main/resources/log.txt @@ -0,0 +1,24 @@ +hello.sh has been executed by java +testing again +src/main/resources/hello.sh: line 5: python: command not found +hello.sh has been executed by java +testing again +src/main/resources/hello.sh: line 5: python: command not found +hello.sh has been executed by java +testing again +src/main/resources/hello.sh: line 5: python: command not found +hello.sh has been executed by java +testing again +src/main/resources/hello.sh: line 5: python: command not found +hello.sh has been executed by java +testing again +Hello World +7 +hello.sh has been executed by java +testing again +Hello World +7 +hello.sh has been executed by java +testing again +Hello World +7 From f5c075f1a75584e02730a7c2be84b03dbb3251a9 Mon Sep 17 00:00:00 2001 From: tas09009 Date: Thu, 11 Feb 2021 09:30:45 -0500 Subject: [PATCH 10/10] ran another test --- src/main/resources/log.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/resources/log.txt b/src/main/resources/log.txt index 2df8127..a964f86 100644 --- a/src/main/resources/log.txt +++ b/src/main/resources/log.txt @@ -22,3 +22,7 @@ hello.sh has been executed by java testing again Hello World 7 +hello.sh has been executed by java +testing again +Hello World +7