Skip to content

Commit fcac9fb

Browse files
committed
Refactor password encoding to dedicated UserPasswordService
1 parent fa6d430 commit fcac9fb

File tree

4 files changed

+10
-9
lines changed

4 files changed

+10
-9
lines changed

api/src/main/kotlin/io/github/gunkim/realworld/api/user/UsersController.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package io.github.gunkim.realworld.api.user
22

33
import io.github.gunkim.realworld.api.JsonRequest
4-
import io.github.gunkim.realworld.domain.user.service.AuthenticateUserService
5-
import io.github.gunkim.realworld.domain.user.service.CreateUserService
6-
import io.github.gunkim.realworld.domain.user.service.GetUserService
74
import io.github.gunkim.realworld.api.user.model.request.UserAuthenticateRequest
85
import io.github.gunkim.realworld.api.user.model.request.UserRegistrationRequest
96
import io.github.gunkim.realworld.api.user.model.response.wrapper.UserWrapper
7+
import io.github.gunkim.realworld.domain.user.service.AuthenticateUserService
8+
import io.github.gunkim.realworld.domain.user.service.CreateUserService
9+
import io.github.gunkim.realworld.domain.user.service.GetUserService
1010
import org.springframework.web.bind.annotation.PostMapping
1111
import org.springframework.web.bind.annotation.RequestMapping
1212
import org.springframework.web.bind.annotation.RestController
@@ -37,7 +37,7 @@ class UsersController(
3737
val registeredUser = createUserService.createUser(
3838
email = request.email,
3939
username = request.username,
40-
encodedPassword = authenticateUserService.encodePassword(request.password),
40+
password = request.password,
4141
)
4242
return userResponseAssembler.assembleUserResponse(registeredUser)
4343
.let(::UserWrapper)
@@ -46,6 +46,7 @@ class UsersController(
4646
override fun authenticate(request: UserAuthenticateRequest): UserWrapper {
4747
val user = getUserService.getByEmail(request.email)
4848
authenticateUserService.authenticate(user, request.password)
49+
4950
return userResponseAssembler.assembleUserResponse(user)
5051
.let(::UserWrapper)
5152
}

api/src/test/kotlin/io/github/gunkim/realworld/share/IntegrationTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ abstract class IntegrationTest : FreeSpec() {
8080
val user = createUserService.createUser(
8181
email = email,
8282
username = username,
83-
encodedPassword = authenticationUserService.encodePassword(password)
83+
password = authenticationUserService.encodePassword(password)
8484
)
8585

8686
return user to createTokenService.createToken(user.id).let(::toToken)

core/src/main/kotlin/io/github/gunkim/realworld/domain/user/service/AuthenticateUserService.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,4 @@ class AuthenticateUserService(
1414
InvalidUserPasswordException("Password does not match")
1515
}
1616
}
17-
18-
fun encodePassword(rawPassword: String): String = userPasswordService.encode(rawPassword)
1917
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
package io.github.gunkim.realworld.domain.user.service
22

3+
import io.github.gunkim.realworld.domain.auth.service.UserPasswordService
34
import io.github.gunkim.realworld.domain.user.model.User
45
import io.github.gunkim.realworld.domain.user.repository.UserRepository
56
import org.springframework.stereotype.Service
67

78
@Service
89
class CreateUserService(
910
private val userRepository: UserRepository,
11+
private val userPasswordService: UserPasswordService,
1012
) {
1113
fun createUser(
1214
email: String,
1315
username: String,
14-
encodedPassword: String,
16+
password: String,
1517
) = User.create(
1618
email = email,
17-
password = encodedPassword,
19+
password = userPasswordService.encode(password),
1820
name = username
1921
).let(userRepository::save)
2022
}

0 commit comments

Comments
 (0)