diff --git a/.github/workflows/code-review.yml b/.github/workflows/code-review.yml new file mode 100644 index 0000000..ae311a4 --- /dev/null +++ b/.github/workflows/code-review.yml @@ -0,0 +1,13 @@ +name: AI Code Review + +on: + pull_request: + types: [opened, edited, synchronize] + +jobs: + code_review: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Run Copilot Code Review + uses: github/copilot-review-action@v1 \ No newline at end of file diff --git a/src/main/java/org/example/webapplab1/movies/Movie.java b/src/main/java/org/example/webapplab1/movies/Movie.java index 26687b0..160a259 100644 --- a/src/main/java/org/example/webapplab1/movies/Movie.java +++ b/src/main/java/org/example/webapplab1/movies/Movie.java @@ -14,6 +14,7 @@ public class Movie { private Long id; private String title; + @Column(columnDefinition = "TEXT") private String description; @Column (name = "release_date") diff --git a/src/main/java/org/example/webapplab1/movies/MovieController.java b/src/main/java/org/example/webapplab1/movies/MovieController.java index 84e5e7c..5b78b41 100644 --- a/src/main/java/org/example/webapplab1/movies/MovieController.java +++ b/src/main/java/org/example/webapplab1/movies/MovieController.java @@ -3,6 +3,9 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @@ -23,4 +26,22 @@ public String getMovies(Model model) { model.addAttribute("movies", movies); return "movies"; } + + @GetMapping("/movies/new") + public String showCreateForm(Model model) { + model.addAttribute("movie", new Movie()); + return "create-movie"; + } + + @PostMapping("/movies") + public String createMovie(@ModelAttribute("movie") Movie movie) { + movieService.save(movie); + return "redirect:/movies"; + } + + @GetMapping("/movies/delete/{id}") + public String deleteMovie(@PathVariable("id") Long id) { + movieService.deleteById(id); + return "redirect:/movies"; + } } diff --git a/src/main/java/org/example/webapplab1/movies/MovieRepo.java b/src/main/java/org/example/webapplab1/movies/MovieRepo.java index 9c0a1e0..1ba5e16 100644 --- a/src/main/java/org/example/webapplab1/movies/MovieRepo.java +++ b/src/main/java/org/example/webapplab1/movies/MovieRepo.java @@ -3,4 +3,5 @@ import org.springframework.data.repository.ListCrudRepository; public interface MovieRepo extends ListCrudRepository { + Long id(Long id); } diff --git a/src/main/java/org/example/webapplab1/movies/MovieService.java b/src/main/java/org/example/webapplab1/movies/MovieService.java index 9876ecc..7028181 100644 --- a/src/main/java/org/example/webapplab1/movies/MovieService.java +++ b/src/main/java/org/example/webapplab1/movies/MovieService.java @@ -14,4 +14,12 @@ public MovieService(MovieRepo movieRepo) { public List getAllMovies() { return movieRepo.findAll(); } + + public Movie save(Movie movie) { + return movieRepo.save(movie); + } + + public void deleteById(Long id) { + movieRepo.deleteById(id); + } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index cbfc05a..dc97216 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,8 +1,7 @@ spring.application.name=WebApp-lab1 server.port=8080 -spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/movie spring.datasource.username=myuser -spring.datasource.password=secret +spring.datasource.password=pw spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true diff --git a/src/main/resources/templates/create-movie.html b/src/main/resources/templates/create-movie.html new file mode 100644 index 0000000..9d305e0 --- /dev/null +++ b/src/main/resources/templates/create-movie.html @@ -0,0 +1,30 @@ + + + + + Create Movie + + + +

Add Movie

+ +
+ + + + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/movies.html b/src/main/resources/templates/movies.html index 86842cf..68986d6 100644 --- a/src/main/resources/templates/movies.html +++ b/src/main/resources/templates/movies.html @@ -6,6 +6,7 @@

Movie List

+Add new Movie @@ -17,7 +18,7 @@

Movie List

- +
Movie Title Title Director DateDurationDuration (minutes)