generated from yandex-praktikum/java-filmorate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReviewController.java
65 lines (52 loc) · 2.18 KB
/
ReviewController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package ru.yandex.practicum.filmorate.controller;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import ru.yandex.practicum.filmorate.dto.ReviewDto;
import ru.yandex.practicum.filmorate.service.ReviewService;
import javax.validation.Valid;
import java.util.List;
@RestController
@RequestMapping("/reviews")
@RequiredArgsConstructor
public class ReviewController {
private final ReviewService reviewService;
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public ReviewDto addReview(@Valid @RequestBody ReviewDto reviewDto) {
return reviewService.addReview(reviewDto);
}
@PutMapping
public ReviewDto updateReview(@Valid @RequestBody ReviewDto updatedReviewDto) {
return reviewService.updateReview(updatedReviewDto);
}
@DeleteMapping("/{id}")
public void deleteReview(@PathVariable long id) {
reviewService.deleteReview(id);
}
@GetMapping("/{id}")
public ReviewDto getReviewById(@PathVariable long id) {
return reviewService.getReviewById(id);
}
@GetMapping
public List<ReviewDto> getReviewsByFilmId(@RequestParam(required = false) Long filmId,
@RequestParam(required = false, defaultValue = "10") int count) {
return reviewService.getReviewsByFilmId(filmId, count);
}
@PutMapping("/{id}/like/{userId}")
public ReviewDto addLikeToReview(@PathVariable long id, @PathVariable long userId) {
return reviewService.addLikeToReview(id, userId);
}
@PutMapping("/{id}/dislike/{userId}")
public ReviewDto addDislikeToReview(@PathVariable long id, @PathVariable long userId) {
return reviewService.addDislikeToReview(id, userId);
}
@DeleteMapping("/{id}/like/{userId}")
public ReviewDto deleteLikeFromReview(@PathVariable long id, @PathVariable long userId) {
return reviewService.deleteLikeFromReview(id, userId);
}
@DeleteMapping("/{id}/dislike/{userId}")
public ReviewDto deleteDislikeFromReview(@PathVariable long id, @PathVariable long userId) {
return reviewService.deleteDislikeFromReview(id, userId);
}
}