Commit e11949d4 authored by Mikuláš Heinz's avatar Mikuláš Heinz Committed by Michal Řezník
Browse files

MovieManagementController wrap responses with ResponseEntity

parent 059b76b2
Loading
Loading
Loading
Loading
+18 −14
Original line number Diff line number Diff line
@@ -7,15 +7,17 @@ import cz.muni.fi.pa165.moviesmanagement.facade.MovieFacade;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.RequestBody;


import java.util.Collection;
import java.util.Optional;
@@ -43,8 +45,8 @@ public class MovieController {
     * @return collection of all movies
     */
    @GetMapping
    public Collection<MovieDto> getAllMovies() {
        return movieFacade.getAllMovies();
    public ResponseEntity<Collection<MovieDto>> getAllMovies() {
        return ResponseEntity.ok(movieFacade.getAllMovies());
    }

    /**
@@ -79,8 +81,8 @@ public class MovieController {
     * @return movies with given genre
     */
    @GetMapping("/genre/{genre}")
    public Collection<MovieDto> getMoviesByGenre(@PathVariable final MovieGenre genre) {
        return movieFacade.getMoviesByGenre(genre);
    public ResponseEntity<Collection<MovieDto>> getMoviesByGenre(@PathVariable final MovieGenre genre) {
        return ResponseEntity.ok(movieFacade.getMoviesByGenre(genre));
    }

    /**
@@ -89,10 +91,9 @@ public class MovieController {
     * @return collection of all possible genres
     */
    @GetMapping("/genres")
    public Collection<MovieGenre> getGenres() {
        return movieFacade.getPossibleGenres();
    public ResponseEntity<Collection<MovieGenre>> getGenres() {
        return ResponseEntity.ok(movieFacade.getPossibleGenres());
    }

    /**
     * Add movie
     *
@@ -100,8 +101,9 @@ public class MovieController {
     * @return added movie
     */
    @PostMapping
    public MovieDto addMovie(@RequestBody final CreateMovieDto movieDto) {
        return movieFacade.addMovie(movieDto);
    public ResponseEntity<MovieDto> addMovie(@RequestBody final CreateMovieDto movieDto) {
        MovieDto createdMovie = movieFacade.addMovie(movieDto);
        return ResponseEntity.status(HttpStatus.CREATED).body(createdMovie);
    }

    /**
@@ -111,8 +113,10 @@ public class MovieController {
     * @return updated movie
     */
    @PutMapping
    public MovieDto updateMovie(@RequestBody final MovieDto movieDto) {
        return movieFacade.updateMovie(movieDto);
    public ResponseEntity<MovieDto> updateMovie(@RequestBody final MovieDto movieDto) {
        Optional<MovieDto> updatedMovie = Optional.ofNullable(movieFacade.updateMovie(movieDto));
        return updatedMovie.map(ResponseEntity::ok)
                .orElseGet(() -> ResponseEntity.notFound().build());
    }

    /**