1 | package com.example.demo.controller;
|
---|
2 |
|
---|
3 | import com.example.demo.model.Genre;
|
---|
4 | import com.example.demo.model.IS_.MovieGenreCombination;
|
---|
5 | import com.example.demo.model.IS_.MovieGenreKey;
|
---|
6 | import com.example.demo.model.Movie;
|
---|
7 | import com.example.demo.repository.GenreRepository;
|
---|
8 | import com.example.demo.repository.MovieGenreCombinationRepository;
|
---|
9 | import com.example.demo.service.MovieProjectionService;
|
---|
10 | import com.example.demo.service.MovieService;
|
---|
11 | import org.springframework.security.access.prepost.PreAuthorize;
|
---|
12 | import org.springframework.stereotype.Controller;
|
---|
13 | import org.springframework.ui.Model;
|
---|
14 | import org.springframework.web.bind.annotation.*;
|
---|
15 |
|
---|
16 | import java.util.List;
|
---|
17 |
|
---|
18 | @Controller
|
---|
19 | @RequestMapping("/movies")
|
---|
20 | public class MovieController {
|
---|
21 | private final MovieService movieService;
|
---|
22 | private final MovieProjectionService movieProjectionService;
|
---|
23 | private final MovieGenreCombinationRepository movieGenreCombinationRepository;
|
---|
24 | private final GenreRepository genreRepository;
|
---|
25 |
|
---|
26 | public MovieController(MovieService movieService, MovieProjectionService movieProjectionService, MovieGenreCombinationRepository movieGenreCombinationRepository, GenreRepository genreRepository) {
|
---|
27 | this.movieService = movieService;
|
---|
28 | this.movieProjectionService = movieProjectionService;
|
---|
29 | this.movieGenreCombinationRepository = movieGenreCombinationRepository;
|
---|
30 | this.genreRepository = genreRepository;
|
---|
31 | }
|
---|
32 |
|
---|
33 |
|
---|
34 | @GetMapping
|
---|
35 | public String getMoviePage(@RequestParam(required = false) String error, Model model) {
|
---|
36 | if (error != null && !error.isEmpty()) {
|
---|
37 | model.addAttribute("hasError", true);
|
---|
38 | model.addAttribute("error", error);
|
---|
39 | }
|
---|
40 | List<Movie> movie= this.movieService.findAll();
|
---|
41 | model.addAttribute("movie", movieGenreCombinationRepository.findAll());
|
---|
42 | model.addAttribute("bodyContent", "movies");
|
---|
43 | return "master-template";
|
---|
44 | }
|
---|
45 | @PreAuthorize("hasRole('ROLE_EMPLOYEE')")
|
---|
46 | @GetMapping("/add-form")
|
---|
47 | public String addMoviePage(Model model) {
|
---|
48 | List<Movie> movie = this.movieService.findAll();
|
---|
49 | List<Genre> genres = this.genreRepository.findAll();
|
---|
50 | model.addAttribute("movie", movie);
|
---|
51 | model.addAttribute("genre", genres);
|
---|
52 | model.addAttribute("bodyContent", "add-movie");
|
---|
53 | return "master-template";
|
---|
54 | }
|
---|
55 |
|
---|
56 | @PreAuthorize("hasRole('ROLE_EMPLOYEE')")
|
---|
57 | @PostMapping("/add")
|
---|
58 | public String saveMovie(
|
---|
59 | @RequestParam(required = false) Integer movie_id,
|
---|
60 | @RequestParam String movie_name,
|
---|
61 | @RequestParam String movie_age_category,
|
---|
62 | @RequestParam String movie_cast,
|
---|
63 | @RequestParam String movie_film_director,
|
---|
64 | @RequestParam String movie_production,
|
---|
65 | @RequestParam String movie_time_duration,
|
---|
66 | @RequestParam Integer genre_id )
|
---|
67 | {
|
---|
68 |
|
---|
69 | this.movieService.save(movie_id, movie_name, movie_age_category, movie_cast, movie_production,movie_film_director, movie_time_duration);
|
---|
70 | MovieGenreKey movieGenreKey = new MovieGenreKey();
|
---|
71 | movieGenreKey.setMovie(this.movieService.findById(movie_id).get());
|
---|
72 | movieGenreKey.setGenre(this.genreRepository.findById(genre_id).get());
|
---|
73 | MovieGenreCombination movieGenreCombination = new MovieGenreCombination();
|
---|
74 | movieGenreCombination.setMovieGenreKey(movieGenreKey);
|
---|
75 | this.movieGenreCombinationRepository.save(movieGenreCombination);
|
---|
76 | return "redirect:/movies";
|
---|
77 | }
|
---|
78 |
|
---|
79 | /*
|
---|
80 | @RequestMapping("/view/movies/id?={movie_id}")
|
---|
81 | public String viewMovies(Model model, @RequestParam Integer movie_id){
|
---|
82 | List<MovieProjection> moviegoer = movieProjectionService.findByMovieID(movie_id);
|
---|
83 | model.addAttribute("moviegoer", moviegoer);
|
---|
84 | return "view";
|
---|
85 | }*/
|
---|
86 |
|
---|
87 |
|
---|
88 |
|
---|
89 |
|
---|
90 |
|
---|
91 | }
|
---|