feat : User Upsert Port 및 Adapter 구현, Service 로직에 추가
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package com.banjjoknim.cleanarchitecture.user.adapter.out.persistence
|
||||
|
||||
import com.banjjoknim.cleanarchitecture.user.application.port.out.UpsertUserPersistencePort
|
||||
import com.banjjoknim.cleanarchitecture.user.domain.model.User
|
||||
import org.springframework.stereotype.Component
|
||||
|
||||
@Component
|
||||
class UpsertUserPersistenceAdapter(
|
||||
private val userEntityRepository: UserEntityRepository
|
||||
): UpsertUserPersistencePort {
|
||||
override fun upsert(user: User) {
|
||||
userEntityRepository.save(user.toDomainEntity())
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.banjjoknim.cleanarchitecture.user.application.port.out
|
||||
|
||||
import com.banjjoknim.cleanarchitecture.user.domain.model.User
|
||||
|
||||
interface UpsertUserPersistencePort {
|
||||
fun upsert(user: User)
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.banjjoknim.cleanarchitecture.user.application.port.`in`.ChangeNicknam
|
||||
import com.banjjoknim.cleanarchitecture.user.application.port.`in`.ChangeNicknameResponse
|
||||
import com.banjjoknim.cleanarchitecture.user.application.port.`in`.ChangeNicknameUseCase
|
||||
import com.banjjoknim.cleanarchitecture.user.application.port.out.LoadUserPersistencePort
|
||||
import com.banjjoknim.cleanarchitecture.user.application.port.out.UpsertUserPersistencePort
|
||||
import org.springframework.stereotype.Service
|
||||
import org.springframework.transaction.annotation.Transactional
|
||||
|
||||
@@ -11,10 +12,12 @@ import org.springframework.transaction.annotation.Transactional
|
||||
@Service
|
||||
class ChangeNicknameService(
|
||||
private val loadUserPersistencePort: LoadUserPersistencePort,
|
||||
private val upsertUserPersistencePort: UpsertUserPersistencePort
|
||||
) : ChangeNicknameUseCase {
|
||||
override fun changeNickname(changeNicknameRequest: ChangeNicknameRequest): ChangeNicknameResponse {
|
||||
val user = loadUserPersistencePort.loadUser(changeNicknameRequest.userId)
|
||||
user.changeNickname(changeNicknameRequest.newNickname)
|
||||
upsertUserPersistencePort.upsert(user)
|
||||
return ChangeNicknameResponse(user.id)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package com.banjjoknim.cleanarchitecture.user.domain.model
|
||||
|
||||
import com.banjjoknim.cleanarchitecture.user.domain.entity.NicknameColumn
|
||||
import com.banjjoknim.cleanarchitecture.user.domain.entity.UserEntity
|
||||
|
||||
class User(
|
||||
var id: Long = 0L,
|
||||
var nickname: Nickname
|
||||
@@ -7,4 +10,8 @@ class User(
|
||||
fun changeNickname(newNickname: String) {
|
||||
this.nickname = Nickname(newNickname)
|
||||
}
|
||||
|
||||
fun toDomainEntity(): UserEntity {
|
||||
return UserEntity(id, NicknameColumn(nickname.value))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user