- add AuthenticationController - add AuthenticationService - add getUserByUsername to AccountService - add findByUsername to AccountRepository - add SecurityConfiguration - set up authentication
31 lines
1.0 KiB
Kotlin
31 lines
1.0 KiB
Kotlin
package ltd.hlaeja.service
|
|
|
|
import io.github.oshai.kotlinlogging.KotlinLogging
|
|
import java.util.UUID
|
|
import ltd.hlaeja.entity.AccountEntity
|
|
import ltd.hlaeja.repository.AccountRepository
|
|
import org.springframework.http.HttpStatus
|
|
import org.springframework.stereotype.Service
|
|
import org.springframework.web.server.ResponseStatusException
|
|
import reactor.core.publisher.Mono
|
|
|
|
private val log = KotlinLogging.logger {}
|
|
|
|
@Service
|
|
class AccountService(
|
|
private val accountRepository: AccountRepository,
|
|
) {
|
|
|
|
fun getUserById(
|
|
uuid: UUID,
|
|
): Mono<AccountEntity> = accountRepository.findById(uuid)
|
|
.doOnNext { log.debug { "Get account ${it.id}" } }
|
|
.switchIfEmpty(Mono.error(ResponseStatusException(HttpStatus.NOT_FOUND)))
|
|
|
|
fun getUserByUsername(
|
|
username: String,
|
|
): Mono<AccountEntity> = accountRepository.findByUsername(username)
|
|
.doOnNext { log.debug { "Get account ${it.id} for username $username" } }
|
|
.switchIfEmpty(Mono.error(ResponseStatusException(HttpStatus.NOT_FOUND)))
|
|
}
|