Skip to content

Commit 15c69e4

Browse files
authored
Merge pull request #136 from PSR-Co/refactor/#111-enumValid
[refactor] enumValid 어노테이션 User + CS 도메인 적용
2 parents 3e45ac4 + 7db61d7 commit 15c69e4

File tree

12 files changed

+34
-33
lines changed

12 files changed

+34
-33
lines changed

src/main/kotlin/com/psr/psr/cs/controller/CsController.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.psr.psr.cs.controller
22

3-
import com.psr.psr.cs.dto.FaqListRes
4-
import com.psr.psr.cs.dto.FaqRes
5-
import com.psr.psr.cs.dto.NoticeListRes
6-
import com.psr.psr.cs.dto.NoticeRes
3+
import com.psr.psr.cs.dto.response.FaqListRes
4+
import com.psr.psr.cs.dto.response.FaqRes
5+
import com.psr.psr.cs.dto.response.NoticeListRes
6+
import com.psr.psr.cs.dto.response.NoticeRes
77
import com.psr.psr.cs.service.CsService
88
import com.psr.psr.global.dto.BaseResponse
99
import org.springframework.web.bind.annotation.*

src/main/kotlin/com/psr/psr/cs/dto/assembler/CsAssembler.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.psr.psr.cs.dto.assembler
22

3-
import com.psr.psr.cs.dto.FaqListRes
4-
import com.psr.psr.cs.dto.FaqRes
5-
import com.psr.psr.cs.dto.NoticeListRes
6-
import com.psr.psr.cs.dto.NoticeRes
3+
import com.psr.psr.cs.dto.response.FaqListRes
4+
import com.psr.psr.cs.dto.response.FaqRes
5+
import com.psr.psr.cs.dto.response.NoticeListRes
6+
import com.psr.psr.cs.dto.response.NoticeRes
77
import com.psr.psr.cs.entity.Faq
88
import com.psr.psr.cs.entity.Notice
99
import org.springframework.stereotype.Component

src/main/kotlin/com/psr/psr/cs/dto/FaqListRes.kt renamed to src/main/kotlin/com/psr/psr/cs/dto/response/FaqListRes.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.psr.psr.cs.dto
1+
package com.psr.psr.cs.dto.response
22

33
data class FaqListRes (
44
val faqLists: List<FaqRes>?

src/main/kotlin/com/psr/psr/cs/dto/FaqRes.kt renamed to src/main/kotlin/com/psr/psr/cs/dto/response/FaqRes.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.psr.psr.cs.dto
1+
package com.psr.psr.cs.dto.response
22

33
import com.fasterxml.jackson.annotation.JsonInclude
44

src/main/kotlin/com/psr/psr/cs/dto/NoticeListRes.kt renamed to src/main/kotlin/com/psr/psr/cs/dto/response/NoticeListRes.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.psr.psr.cs.dto
1+
package com.psr.psr.cs.dto.response
22

33
data class NoticeListRes (
44
val noticeLists: List<NoticeRes>?

src/main/kotlin/com/psr/psr/cs/dto/NoticeRes.kt renamed to src/main/kotlin/com/psr/psr/cs/dto/response/NoticeRes.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.psr.psr.cs.dto
1+
package com.psr.psr.cs.dto.response
22

33
import com.fasterxml.jackson.annotation.JsonFormat
44
import com.fasterxml.jackson.annotation.JsonInclude

src/main/kotlin/com/psr/psr/cs/service/CsService.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.psr.psr.cs.service
22

3-
import com.psr.psr.cs.dto.FaqListRes
4-
import com.psr.psr.cs.dto.FaqRes
5-
import com.psr.psr.cs.dto.NoticeListRes
6-
import com.psr.psr.cs.dto.NoticeRes
3+
import com.psr.psr.cs.dto.response.FaqListRes
4+
import com.psr.psr.cs.dto.response.FaqRes
5+
import com.psr.psr.cs.dto.response.NoticeListRes
6+
import com.psr.psr.cs.dto.response.NoticeRes
77
import com.psr.psr.cs.dto.assembler.CsAssembler
88
import com.psr.psr.cs.entity.FaqType
99
import com.psr.psr.cs.repository.FaqRepository
@@ -21,12 +21,12 @@ class CsService(
2121

2222
) {
2323
// 공지사항 메인
24-
fun getNotices() : NoticeListRes{
24+
fun getNotices() : NoticeListRes {
2525
return csAssembler.toNoticeListRes(noticeRepository.findByStatusOrderByCreatedAtDesc(ACTIVE_STATUS))
2626
}
2727

2828
// 공지사항 상세
29-
fun getNotice(noticeId: Long) : NoticeRes{
29+
fun getNotice(noticeId: Long) : NoticeRes {
3030
val notice = noticeRepository.findByIdAndStatus(noticeId, ACTIVE_STATUS) ?: throw BaseException(BaseResponseCode.NOT_FOUND_NOTICE)
3131
return csAssembler.toNoticeRes(notice)
3232
}
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package com.psr.psr.user.dto
22

3+
import com.psr.psr.global.resolver.EnumValid
34
import com.psr.psr.user.entity.Category
45

56
data class UserInterestDto (
7+
@EnumValid(enumClass = Category::class, message = "올바르지 않은 상품 카테고리입니다.")
68
val category: String
7-
){
8-
fun checkInterestCategory() : Category{
9-
return Category.getCategoryByName(category)
10-
}
11-
}
9+
)

src/main/kotlin/com/psr/psr/user/dto/assembler/UserAssembler.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class UserAssembler {
3030
fun toEntity(signUpReq: SignUpReq): User {
3131
return User(email = signUpReq.email,
3232
password = signUpReq.password,
33-
type = Type.getTypeByName(signUpReq.type),
33+
type = Type.getTypeByValue(signUpReq.type),
3434
phone = signUpReq.phone,
3535
imgUrl = signUpReq.imgUrl,
3636
provider = Provider.LOCAL,
@@ -43,7 +43,7 @@ class UserAssembler {
4343
fun toInterestListEntity(user: User, signUpReq: SignUpReq): List<UserInterest> {
4444
return signUpReq.interestList.stream()
4545
.map { i ->
46-
UserInterest(category = Category.getCategoryByName(i.category),
46+
UserInterest(category = Category.getCategoryByValue(i.category),
4747
user = user)
4848
}.collect(Collectors.toList())
4949
}

src/main/kotlin/com/psr/psr/user/dto/request/SignUpReq.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.psr.psr.user.dto.request
22

3+
import com.psr.psr.global.resolver.EnumValid
34
import com.psr.psr.user.dto.UserInterestDto
5+
import com.psr.psr.user.entity.Category
6+
import com.psr.psr.user.entity.Type
47
import jakarta.annotation.Nullable
58
import jakarta.validation.constraints.Email
69
import jakarta.validation.constraints.NotBlank
@@ -20,6 +23,7 @@ data class SignUpReq (
2023
)
2124
var password: String,
2225
@field:NotBlank
26+
@EnumValid(enumClass = Type::class, message = "올바르지 않은 사용자 역할니다.")
2327
val type: String,
2428
@field:Pattern(
2529
regexp = "^01([0|1|6|7|8|9])-?([0-9]{3,4})-?([0-9]{4})\$",
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
package com.psr.psr.user.entity
22

3-
import com.psr.psr.global.exception.BaseException
4-
import com.psr.psr.global.exception.BaseResponseCode
3+
import com.psr.psr.global.resolver.EnumType
54

65

7-
enum class Type(val value: String) {
6+
enum class Type(override val value: String) : EnumType {
87
GENERAL("일반"),
98
ENTREPRENEUR("사업자"),
109
SHOW_HOST("쇼호스트"),
1110
MANAGER("관리자");
1211

1312
companion object {
14-
fun getTypeByName(name: String): Type {
15-
return enumValues<Type>().find { it.value == name }
16-
?: throw BaseException(BaseResponseCode.INVALID_USER_TYPE_NAME)
13+
fun getTypeByValue(value: String): Type {
14+
return enumValues<Type>().find { it.value == value }!!
1715
}
1816
}
1917
}

src/main/kotlin/com/psr/psr/user/service/UserService.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ class UserService(
8080
// 회원가입
8181
@Transactional
8282
fun signUp(signUpReq: SignUpReq): TokenDto {
83-
val categoryCheck = signUpReq.interestList.stream().map { i -> i.checkInterestCategory() }.collect(Collectors.toList()).groupingBy { it }.eachCount().any { it.value > 1 }
83+
// 중복 값 확인
84+
val categoryCheck = signUpReq.interestList.groupingBy { it }.eachCount().any { it.value > 1 }
8485
if(categoryCheck) throw BaseException(INVALID_USER_INTEREST_COUNT)
8586
// category 의 사이즈 확인
8687
val listSize = signUpReq.interestList.size
@@ -242,7 +243,7 @@ class UserService(
242243
// 관심 목록 변경
243244
@Transactional
244245
fun patchWatchLists(user: User, userInterestListReq: UserInterestListDto) {
245-
val reqLists = userInterestListReq.interestList!!.map { i -> Category.getCategoryByName(i.category) }
246+
val reqLists = userInterestListReq.interestList!!.map { i -> Category.getCategoryByValue(i.category) }
246247
if(reqLists.isEmpty() || reqLists.size > 3) throw BaseException(INVALID_USER_INTEREST_COUNT)
247248
val userWatchLists = userInterestRepository.findByUserAndStatus(user, ACTIVE_STATUS)
248249
val categoryLists = userWatchLists.map { c -> c.category }

0 commit comments

Comments
 (0)