From f705be8863c684e8233b5441826bc515ca66670d Mon Sep 17 00:00:00 2001 From: Sandra <229708855+SandraNelj@users.noreply.github.com> Date: Wed, 11 Mar 2026 13:59:22 +0100 Subject: [PATCH 1/2] Created method for adding new movie with form and presenting the new movie in the list. --- .../org/example/webapplab1/movies/Movie.java | 1 + .../webapplab1/movies/MovieController.java | 21 +++++++++++++ .../example/webapplab1/movies/MovieRepo.java | 1 + .../webapplab1/movies/MovieService.java | 8 +++++ src/main/resources/application.properties | 3 +- .../resources/templates/create-movie.html | 30 +++++++++++++++++++ src/main/resources/templates/movies.html | 3 +- 7 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/templates/create-movie.html 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)
From de61761be0bd34e935b2e572a54fb454f70c075d Mon Sep 17 00:00:00 2001 From: Sandra <229708855+SandraNelj@users.noreply.github.com> Date: Wed, 11 Mar 2026 14:06:53 +0100 Subject: [PATCH 2/2] Added code review file --- .github/workflows/code-review.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/code-review.yml 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