generated from aura-ascend/template-service
update AccountController with balance
This commit is contained in:
@@ -1,18 +1,26 @@
|
||||
package ltd.lulz.controller
|
||||
|
||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||
import jakarta.validation.Valid
|
||||
import java.util.UUID
|
||||
import ltd.lulz.model.Account
|
||||
import ltd.lulz.service.AccountService
|
||||
import ltd.lulz.util.toEntity
|
||||
import ltd.lulz.util.toResponse
|
||||
import org.springframework.http.HttpStatus.CREATED
|
||||
import org.springframework.http.HttpStatus.NOT_FOUND
|
||||
import org.springframework.validation.annotation.Validated
|
||||
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.RequestBody
|
||||
import org.springframework.web.bind.annotation.ResponseStatus
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
import org.springframework.web.server.ResponseStatusException
|
||||
import reactor.core.publisher.Mono
|
||||
|
||||
private val log = KotlinLogging.logger {}
|
||||
|
||||
@RestController
|
||||
@Validated
|
||||
class AccountController(
|
||||
@@ -25,4 +33,12 @@ class AccountController(
|
||||
@Valid @RequestBody request: Account.Request,
|
||||
): Mono<Account.Response> = accountService.create(request.toEntity())
|
||||
.map { it.toResponse() }
|
||||
|
||||
@GetMapping("/balance/account-{account}")
|
||||
fun balance(
|
||||
@PathVariable account: UUID,
|
||||
): Mono<Account.Response> = accountService.getById(account)
|
||||
.map { it.toResponse() }
|
||||
.switchIfEmpty(Mono.error(ResponseStatusException(NOT_FOUND)))
|
||||
.doOnError { log.debug { "account $account not found for balance" } }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user