Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge: (#281) Common dto 패키지 리팩토링 #309

Merged
merged 7 commits into from
Jan 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package team.comit.simtong.domain.auth.dto
package team.comit.simtong.domain.auth.dto.response

import java.util.Date

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package team.comit.simtong.domain.auth.usecase

import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.auth.exception.AuthExceptions
import team.comit.simtong.domain.auth.spi.JwtPort
import team.comit.simtong.domain.auth.spi.QueryRefreshTokenPort
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package team.comit.simtong.domain.common.dto.response
package team.comit.simtong.domain.user.dto.response

/**
*
* 사원 번호 찾기 결과를 전송하는 FindEmployeeNumberWebResponse
* 사원 번호 찾기 결과를 전송하는 FindEmployeeNumberResponse
*
* @author Chokyunghyeon
* @date 2022/09/11
* @version 1.0.0
* @version 1.2.5
**/
data class FindEmployeeNumberWebResponse(
data class FindEmployeeNumberResponse(
val employeeNumber: Int
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package team.comit.simtong.domain.user.spi

import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.user.model.Authority
import java.util.UUID

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package team.comit.simtong.domain.user.usecase

import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.user.dto.request.AdminSignInData
import team.comit.simtong.domain.user.exception.UserExceptions
import team.comit.simtong.domain.user.model.Authority
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package team.comit.simtong.domain.user.usecase

import team.comit.simtong.domain.user.dto.request.CheckMatchedAccountData
import team.comit.simtong.domain.user.exception.UserExceptions
import team.comit.simtong.domain.user.spi.QueryUserPort
import team.comit.simtong.global.annotation.ReadOnlyUseCase
Expand All @@ -11,16 +10,16 @@ import team.comit.simtong.global.annotation.ReadOnlyUseCase
*
* @author Chokyunghyeon
* @date 2022/10/15
* @version 1.0.0
* @version 1.2.5
**/
@ReadOnlyUseCase
class CheckMatchedAccountUseCase(
private val queryUserPort: QueryUserPort
) {

fun execute(request: CheckMatchedAccountData) {
fun execute(employeeNumber: Int, email: String) {

if (!queryUserPort.existsUserByEmployeeNumberAndEmail(request.employeeNumber, request.email)) {
if (!queryUserPort.existsUserByEmployeeNumberAndEmail(employeeNumber, email)) {
throw UserExceptions.NotFound()
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package team.comit.simtong.domain.user.usecase

import team.comit.simtong.domain.user.dto.request.FindEmployeeNumberData
import team.comit.simtong.domain.user.dto.response.FindEmployeeNumberResponse
import team.comit.simtong.domain.user.exception.UserExceptions
import team.comit.simtong.domain.user.spi.QueryUserPort
import team.comit.simtong.global.annotation.UseCase
Expand All @@ -18,10 +19,11 @@ class FindEmployeeNumberUseCase(
private val queryUserPort: QueryUserPort
) {

fun execute(request: FindEmployeeNumberData): Int {
fun execute(request: FindEmployeeNumberData): FindEmployeeNumberResponse {
val user = queryUserPort.queryUserByNameAndSpotAndEmail(request.name, request.spotId, request.email)
?: throw UserExceptions.NotFound()

return user.employeeNumber.value
.let(::FindEmployeeNumberResponse)
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package team.comit.simtong.domain.user.usecase

import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.user.dto.request.UserSignInData
import team.comit.simtong.domain.user.exception.UserExceptions
import team.comit.simtong.domain.user.model.Authority
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package team.comit.simtong.domain.user.usecase

import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.auth.exception.AuthExceptions
import team.comit.simtong.domain.file.exception.FileExceptions
import team.comit.simtong.domain.spot.exception.SpotExceptions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import org.mockito.BDDMockito.given
import org.springframework.boot.test.mock.mockito.MockBean
import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.auth.exception.AuthExceptions
import team.comit.simtong.domain.auth.model.RefreshToken
import team.comit.simtong.domain.auth.spi.JwtPort
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import org.mockito.BDDMockito.given
import org.springframework.boot.test.mock.mockito.MockBean
import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.user.dto.request.AdminSignInData
import team.comit.simtong.domain.user.exception.UserExceptions
import team.comit.simtong.domain.user.model.Authority
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import org.junit.jupiter.api.assertDoesNotThrow
import org.junit.jupiter.api.assertThrows
import org.mockito.kotlin.given
import org.springframework.boot.test.mock.mockito.MockBean
import team.comit.simtong.domain.user.dto.request.CheckMatchedAccountData
import team.comit.simtong.domain.user.exception.UserExceptions
import team.comit.simtong.domain.user.spi.QueryUserPort
import team.comit.simtong.global.annotation.SimtongTest
Expand All @@ -19,12 +18,9 @@ class CheckMatchedAccountUseCaseTests {

private lateinit var checkMatchedAccountUseCase: CheckMatchedAccountUseCase

private val requestStub: CheckMatchedAccountData by lazy {
CheckMatchedAccountData(
employeeNumber = 1234567890,
email = "test@test.com"
)
}
private val employeeNumber = 1234567890

private val email = "test@test.com"

@BeforeEach
fun setUp() {
Expand All @@ -34,24 +30,24 @@ class CheckMatchedAccountUseCaseTests {
@Test
fun `계정 확인 성공`() {
// given
given(queryUserPort.existsUserByEmployeeNumberAndEmail(requestStub.employeeNumber, requestStub.email))
given(queryUserPort.existsUserByEmployeeNumberAndEmail(employeeNumber, email))
.willReturn(true)

// when & then
assertDoesNotThrow {
checkMatchedAccountUseCase.execute(requestStub)
checkMatchedAccountUseCase.execute(employeeNumber, email)
}
}

@Test
fun `계정 확인 실패`() {
// given
given(queryUserPort.existsUserByEmployeeNumberAndEmail(requestStub.employeeNumber, requestStub.email))
given(queryUserPort.existsUserByEmployeeNumberAndEmail(employeeNumber, email))
.willReturn(false)

// when & then
assertThrows<UserExceptions.NotFound> {
checkMatchedAccountUseCase.execute(requestStub)
checkMatchedAccountUseCase.execute(employeeNumber, email)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,11 @@ class FindEmployeeNumberUseCaseTests {
given(queryUserPort.queryUserByNameAndSpotAndEmail(name, spotId, email))
.willReturn(userStub)

// when
val response = findEmployeeNumberUseCase.execute(requestStub)

// when & then
assertEquals(findEmployeeNumberUseCase.execute(requestStub), employeeNumber)
assertEquals(response.employeeNumber, employeeNumber)
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import org.mockito.BDDMockito.given
import org.springframework.boot.test.mock.mockito.MockBean
import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.user.dto.request.UserSignInData
import team.comit.simtong.domain.user.exception.UserExceptions
import team.comit.simtong.domain.user.model.Authority
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import org.mockito.BDDMockito.given
import org.springframework.boot.test.mock.mockito.MockBean
import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.auth.exception.AuthExceptions
import team.comit.simtong.domain.auth.model.AuthCodeLimit
import team.comit.simtong.domain.file.exception.FileExceptions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import io.jsonwebtoken.Jwts
import io.jsonwebtoken.SignatureAlgorithm
import org.springframework.stereotype.Component
import team.comit.simtong.domain.auth.spi.JwtPort
import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.user.model.Authority
import team.comit.simtong.global.security.SecurityProperties
import team.comit.simtong.persistence.auth.entity.RefreshTokenEntity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import team.comit.simtong.domain.admin.dto.AdminSignInRequest
import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.user.dto.response.QueryAdminInfoResponse
import team.comit.simtong.domain.user.usecase.AdminSignInUseCase
import team.comit.simtong.domain.user.usecase.QueryAdminInfoUseCase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,17 @@ import org.hibernate.validator.constraints.Range
import org.springframework.http.HttpStatus
import org.springframework.validation.annotation.Validated
import org.springframework.web.bind.annotation.*
import team.comit.simtong.domain.auth.dto.TokenResponse
import team.comit.simtong.domain.auth.dto.response.TokenResponse
import team.comit.simtong.domain.auth.usecase.ReissueTokenUseCase
import team.comit.simtong.domain.common.dto.request.ChangePasswordWebRequest
import team.comit.simtong.domain.common.dto.request.FindEmployeeNumberWebRequest
import team.comit.simtong.domain.common.dto.request.ResetPasswordWebRequest
import team.comit.simtong.domain.common.dto.response.FindEmployeeNumberWebResponse
import team.comit.simtong.domain.common.dto.ChangePasswordRequest
import team.comit.simtong.domain.common.dto.FindEmployeeNumberRequest
import team.comit.simtong.domain.common.dto.ResetPasswordRequest
import team.comit.simtong.domain.spot.dto.SpotResponse
import team.comit.simtong.domain.spot.usecase.ShowSpotListUseCase
import team.comit.simtong.domain.team.dto.QueryTeamsResponse
import team.comit.simtong.domain.team.usecase.QueryTeamsUseCase
import team.comit.simtong.domain.user.dto.request.ChangePasswordData
import team.comit.simtong.domain.user.dto.request.CheckMatchedAccountData
import team.comit.simtong.domain.user.dto.request.FindEmployeeNumberData
import team.comit.simtong.domain.user.dto.request.ResetPasswordData
import team.comit.simtong.domain.user.dto.response.FindEmployeeNumberResponse
import team.comit.simtong.domain.user.model.EmployeeNumber
import team.comit.simtong.domain.user.model.Password
import team.comit.simtong.domain.user.usecase.ChangePasswordUseCase
import team.comit.simtong.domain.user.usecase.CheckEmailDuplicationUseCase
import team.comit.simtong.domain.user.usecase.CheckMatchedAccountUseCase
Expand All @@ -37,7 +32,7 @@ import javax.validation.constraints.NotBlank
*
* @author Chokyunghyeon
* @date 2022/09/11
* @version 1.2.4
* @version 1.2.5
**/
@Validated
@RestController
Expand All @@ -55,16 +50,8 @@ class WebCommonAdapter(
) {

@GetMapping("/employee-number")
fun findEmployeeNumber(@Valid @ModelAttribute request: FindEmployeeNumberWebRequest): FindEmployeeNumberWebResponse {
val result = findEmployeeNumberUseCase.execute(
FindEmployeeNumberData(
name = request.name,
spotId = request.spotId,
email = request.email
)
)

return FindEmployeeNumberWebResponse(result)
fun findEmployeeNumber(@Valid @ModelAttribute request: FindEmployeeNumberRequest): FindEmployeeNumberResponse {
return findEmployeeNumberUseCase.execute(request.toData())
}

@PutMapping("/token/reissue")
Expand All @@ -74,14 +61,8 @@ class WebCommonAdapter(

@PutMapping("/password/initialization")
@ResponseStatus(HttpStatus.NO_CONTENT)
fun resetPassword(@Valid @RequestBody request: ResetPasswordWebRequest) {
resetPasswordUseCase.execute(
ResetPasswordData(
email = request.email,
employeeNumber = request.employeeNumber.value,
newPassword = request.newPassword.value
)
)
fun resetPassword(@Valid @RequestBody request: ResetPasswordRequest) {
resetPasswordUseCase.execute(request.toData())
}

@GetMapping("/email/duplication")
Expand All @@ -91,28 +72,18 @@ class WebCommonAdapter(

@PutMapping("/password")
@ResponseStatus(HttpStatus.NO_CONTENT)
fun changePassword(@Valid @RequestBody request: ChangePasswordWebRequest) {
changePasswordUseCase.execute(
ChangePasswordData(
password = request.password.value,
newPassword = request.newPassword.value
)
)
fun changePassword(@Valid @RequestBody request: ChangePasswordRequest) {
changePasswordUseCase.execute(request.toData())
}

@GetMapping("/account/existence")
fun checkMatchedAccount(
@Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE)
@RequestParam employeeNumber: EmployeeNumber,
@RequestParam employeeNumber: Int,
@NotBlank @Email
@RequestParam email: String
) {
checkMatchedAccountUseCase.execute(
CheckMatchedAccountData(
employeeNumber = employeeNumber.value,
email = email
)
)
checkMatchedAccountUseCase.execute(employeeNumber, email)
}

@GetMapping("/spot")
Expand All @@ -121,8 +92,8 @@ class WebCommonAdapter(
}

@GetMapping("/password/compare")
fun comparePassword(@NotBlank @RequestParam password: Password) {
comparePasswordUseCase.execute(password.value)
fun comparePassword(@NotBlank @RequestParam password: String) {
comparePasswordUseCase.execute(password)
}

@GetMapping("/team/{spot-id}")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package team.comit.simtong.domain.common.dto

import team.comit.simtong.domain.user.dto.request.ChangePasswordData
import team.comit.simtong.domain.user.model.Password
import javax.validation.constraints.Pattern

/**
*
* 비밀번호 변경을 요청하는 ChangePasswordRequest
*
* @author Chokyunghyeon
* @date 2022/10/14
* @version 1.2.5
**/
data class ChangePasswordRequest(
@field:Pattern(regexp = Password.PATTERN)
val password: String,

@field:Pattern(regexp = Password.PATTERN)
val newPassword: String
) {

fun toData() = ChangePasswordData(
password = password,
newPassword = newPassword
)
}
Loading