generated from pricelees/issue-pr-template
feat: 회원 연락처 조회 API 및 테스트 추가
This commit is contained in:
parent
02d5c9e7ef
commit
0bcb90f812
@ -7,8 +7,12 @@ import io.swagger.v3.oas.annotations.tags.Tag
|
|||||||
import jakarta.validation.Valid
|
import jakarta.validation.Valid
|
||||||
import org.springframework.http.ResponseEntity
|
import org.springframework.http.ResponseEntity
|
||||||
import org.springframework.web.bind.annotation.RequestBody
|
import org.springframework.web.bind.annotation.RequestBody
|
||||||
|
import roomescape.auth.web.support.CurrentUser
|
||||||
import roomescape.auth.web.support.Public
|
import roomescape.auth.web.support.Public
|
||||||
|
import roomescape.auth.web.support.UserOnly
|
||||||
|
import roomescape.common.dto.CurrentUserContext
|
||||||
import roomescape.common.dto.response.CommonApiResponse
|
import roomescape.common.dto.response.CommonApiResponse
|
||||||
|
import roomescape.member.web.UserContactRetrieveResponse
|
||||||
import roomescape.member.web.UserCreateRequest
|
import roomescape.member.web.UserCreateRequest
|
||||||
import roomescape.member.web.UserCreateResponse
|
import roomescape.member.web.UserCreateResponse
|
||||||
|
|
||||||
@ -27,4 +31,18 @@ interface UserAPI {
|
|||||||
fun signup(
|
fun signup(
|
||||||
@Valid @RequestBody request: UserCreateRequest
|
@Valid @RequestBody request: UserCreateRequest
|
||||||
): ResponseEntity<CommonApiResponse<UserCreateResponse>>
|
): ResponseEntity<CommonApiResponse<UserCreateResponse>>
|
||||||
|
|
||||||
|
@UserOnly
|
||||||
|
@Operation(summary = "회원 가입")
|
||||||
|
@ApiResponses(
|
||||||
|
ApiResponse(
|
||||||
|
responseCode = "200",
|
||||||
|
description = "성공",
|
||||||
|
useReturnTypeSchema = true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
fun findContact(
|
||||||
|
@CurrentUser user: CurrentUserContext
|
||||||
|
): ResponseEntity<CommonApiResponse<UserContactRetrieveResponse>>
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,9 +2,12 @@ package roomescape.member.web
|
|||||||
|
|
||||||
import jakarta.validation.Valid
|
import jakarta.validation.Valid
|
||||||
import org.springframework.http.ResponseEntity
|
import org.springframework.http.ResponseEntity
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping
|
||||||
import org.springframework.web.bind.annotation.PostMapping
|
import org.springframework.web.bind.annotation.PostMapping
|
||||||
import org.springframework.web.bind.annotation.RequestBody
|
import org.springframework.web.bind.annotation.RequestBody
|
||||||
import org.springframework.web.bind.annotation.RestController
|
import org.springframework.web.bind.annotation.RestController
|
||||||
|
import roomescape.auth.web.support.CurrentUser
|
||||||
|
import roomescape.common.dto.CurrentUserContext
|
||||||
import roomescape.common.dto.response.CommonApiResponse
|
import roomescape.common.dto.response.CommonApiResponse
|
||||||
import roomescape.member.business.UserService
|
import roomescape.member.business.UserService
|
||||||
import roomescape.member.docs.UserAPI
|
import roomescape.member.docs.UserAPI
|
||||||
@ -22,4 +25,13 @@ class UserController(
|
|||||||
|
|
||||||
return ResponseEntity.ok(CommonApiResponse(response))
|
return ResponseEntity.ok(CommonApiResponse(response))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/users/contact")
|
||||||
|
override fun findContact(
|
||||||
|
@CurrentUser user: CurrentUserContext
|
||||||
|
): ResponseEntity<CommonApiResponse<UserContactRetrieveResponse>> {
|
||||||
|
val response = userService.findContactById(user.id)
|
||||||
|
|
||||||
|
return ResponseEntity.ok(CommonApiResponse(response))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,8 +8,10 @@ import io.restassured.module.kotlin.extensions.Then
|
|||||||
import io.restassured.module.kotlin.extensions.When
|
import io.restassured.module.kotlin.extensions.When
|
||||||
import org.hamcrest.CoreMatchers.equalTo
|
import org.hamcrest.CoreMatchers.equalTo
|
||||||
import org.springframework.data.repository.findByIdOrNull
|
import org.springframework.data.repository.findByIdOrNull
|
||||||
|
import org.springframework.http.HttpMethod
|
||||||
import org.springframework.http.HttpStatus
|
import org.springframework.http.HttpStatus
|
||||||
import org.springframework.http.MediaType
|
import org.springframework.http.MediaType
|
||||||
|
import roomescape.auth.exception.AuthErrorCode
|
||||||
import roomescape.common.exception.CommonErrorCode
|
import roomescape.common.exception.CommonErrorCode
|
||||||
import roomescape.member.business.SIGNUP
|
import roomescape.member.business.SIGNUP
|
||||||
import roomescape.member.exception.UserErrorCode
|
import roomescape.member.exception.UserErrorCode
|
||||||
@ -18,6 +20,7 @@ import roomescape.member.web.MIN_PASSWORD_LENGTH
|
|||||||
import roomescape.member.web.UserCreateRequest
|
import roomescape.member.web.UserCreateRequest
|
||||||
import roomescape.supports.FunSpecSpringbootTest
|
import roomescape.supports.FunSpecSpringbootTest
|
||||||
import roomescape.supports.UserFixture
|
import roomescape.supports.UserFixture
|
||||||
|
import roomescape.supports.runExceptionTest
|
||||||
import roomescape.supports.runTest
|
import roomescape.supports.runTest
|
||||||
|
|
||||||
class UserApiTest(
|
class UserApiTest(
|
||||||
@ -127,6 +130,47 @@ class UserApiTest(
|
|||||||
test("빈 전화번호") { runCommonTest(commonRequest.copy(phone = "")) }
|
test("빈 전화번호") { runCommonTest(commonRequest.copy(phone = "")) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
context("회원의 연락처 정보를 조회한다.") {
|
||||||
|
val endpoint = "/users/contact"
|
||||||
|
|
||||||
|
context("권한이 없으면 접근할 수 없다.") {
|
||||||
|
test("비회원") {
|
||||||
|
runExceptionTest(
|
||||||
|
method = HttpMethod.GET,
|
||||||
|
endpoint = endpoint,
|
||||||
|
expectedErrorCode = AuthErrorCode.TOKEN_NOT_FOUND
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
test("관리자") {
|
||||||
|
runExceptionTest(
|
||||||
|
token = authUtil.defaultAdminLogin(),
|
||||||
|
method = HttpMethod.GET,
|
||||||
|
endpoint = endpoint,
|
||||||
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
test("정상 응답") {
|
||||||
|
val user = authUtil.defaultUser()
|
||||||
|
val token = authUtil.userLogin(user)
|
||||||
|
|
||||||
|
runTest(
|
||||||
|
token = token,
|
||||||
|
on = {
|
||||||
|
get(endpoint)
|
||||||
|
},
|
||||||
|
expect = {
|
||||||
|
statusCode(HttpStatus.OK.value())
|
||||||
|
body("data.id", equalTo(user.id))
|
||||||
|
body("data.name", equalTo(user.name))
|
||||||
|
body("data.phone", equalTo(user.phone))
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun signup(request: UserCreateRequest): UserEntity {
|
private fun signup(request: UserCreateRequest): UserEntity {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user