-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReviewController.java
47 lines (40 loc) · 1.74 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
package com.music.review.app.controllers;
import com.music.review.app.domain.entities.reviews.Review;
import com.music.review.app.domain.entities.reviews.dtos.ReviewCreateDTO;
import com.music.review.app.domain.entities.reviews.dtos.ReviewGetDTO;
import com.music.review.app.services.MusicService;
import com.music.review.app.services.ReviewService;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("v1/reviews")
@SecurityRequirement(name = "bearer-key")
public class ReviewController {
private final MusicService musicService;
private final ReviewService reviewService;
@Autowired
public ReviewController(MusicService musicService, ReviewService reviewService){
this.musicService = musicService;
this.reviewService = reviewService;
}
@PostMapping
public ResponseEntity<ReviewGetDTO> createReview(@RequestBody @Valid ReviewCreateDTO reviewCreateDTO){
return ResponseEntity.status(HttpStatus.CREATED)
.body(this.reviewService.createReview(reviewCreateDTO,
this.musicService.findByName(reviewCreateDTO.musicName())
)
);
}
@GetMapping("/{music}")
public ResponseEntity<List<Review>> getReviews(@PathVariable String music){
return ResponseEntity.status(HttpStatus.OK)
.body(this.reviewService.getReviewByMusicName(
this.musicService.findByName(music))
);
}
}