Skip to content

Commit

Permalink
Merge branch 'main' into inpink/#10-to-main
Browse files Browse the repository at this point in the history
  • Loading branch information
inpink authored Feb 4, 2025
2 parents a9c353c + da9760b commit 8188f17
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 4 deletions.
6 changes: 6 additions & 0 deletions docs/api/리뷰_생성_API.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,9 @@
### Response

#### `Response Status 200 OK`

``` json
{
"id": "1234567890123"
}
```
14 changes: 10 additions & 4 deletions src/main/kotlin/me/misik/api/api/ReviewController.kt
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package me.misik.api.api

import me.misik.api.api.response.ReviewResponse
import me.misik.api.domain.request.CreateReviewRequest
import me.misik.api.app.CreateReviewFacade
import me.misik.api.app.GetReviewFacade
import me.misik.api.app.ReCreateReviewFacade
import me.misik.api.domain.ReviewStyle
import me.misik.api.domain.response.ReviewStylesResponse
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.*
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestHeader
import org.springframework.web.bind.annotation.RestController

@RestController
class ReviewController(
private val createReviewFacade: CreateReviewFacade,
private val getReviewFacade: GetReviewFacade,
private val reCreateReviewFacade: ReCreateReviewFacade,
) {

Expand All @@ -36,4 +36,10 @@ class ReviewController(

return ReviewStylesResponse.from(reviewStyles)
}

@GetMapping("reviews/{id}")
fun getReview(
@PathVariable("id") id: Long,
): ReviewResponse = ReviewResponse.of(getReviewFacade.getReview(id))

}
18 changes: 18 additions & 0 deletions src/main/kotlin/me/misik/api/api/response/ReviewResponse.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package me.misik.api.api.response

import me.misik.api.domain.Review

data class ReviewResponse(
val isSuccess: Boolean,
val id: String,
val review: String,
) {

companion object {
fun of(review: Review): ReviewResponse = ReviewResponse(
isSuccess = review.isCompleted,
id = review.id.toString(),
review = review.text,
)
}
}
23 changes: 23 additions & 0 deletions src/main/kotlin/me/misik/api/app/GetReviewFacade.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package me.misik.api.app

import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withTimeout
import me.misik.api.core.GracefulShutdownDispatcher
import me.misik.api.domain.Review
import me.misik.api.domain.ReviewService
import org.springframework.stereotype.Component
import kotlin.time.Duration.Companion.seconds

@Component
class GetReviewFacade(
private val reviewService: ReviewService,
) {

fun getReview(id: Long): Review {
return runBlocking(GracefulShutdownDispatcher.dispatcher) {
withTimeout(60.seconds) {
reviewService.getReview(id)
}.get()
}
}
}
3 changes: 3 additions & 0 deletions src/main/kotlin/me/misik/api/domain/ReviewService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,7 @@ class ReviewService(
fun getById(id: Long): Review = reviewRepository.findByIdOrNull(id)
?: throw IllegalArgumentException("Cannot find review by id \"$id\"")


fun getReview(id: Long) = reviewRepository.findById(id)
?: throw IllegalArgumentException("Cannot find review by id \"$id\"")
}

0 comments on commit 8188f17

Please sign in to comment.