Skip to content

Commit 8cfb019

Browse files
committed
refactor : category, Difficulty 리팩토링 (2)
1 parent e3d4ac4 commit 8cfb019

File tree

9 files changed

+33
-24
lines changed

9 files changed

+33
-24
lines changed

src/main/java/org/ezcode/codetest/application/problem/dto/request/ProblemCreateRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public static Problem toEntity(ProblemCreateRequest request, User user) {
5252
.categories(request.categories)
5353
.title(request.title)
5454
.description(request.description)
55-
.difficulty(request.difficulty.getDifficulty())
55+
.difficulty(request.difficulty)
5656
.score(request.difficulty.getScore())
5757
.memoryLimit(request.memoryLimit)
5858
.timeLimit(request.timeLimit)

src/main/java/org/ezcode/codetest/application/problem/dto/request/ProblemUpdateRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public static Problem from(ProblemUpdateRequest request, User user) {
4242
.categories(request.categories)
4343
.title(request.title)
4444
.description(request.description)
45-
.difficulty(request.difficulty.getDifficulty())
45+
.difficulty(request.difficulty)
4646
.score(request.difficulty.getScore())
4747
.memoryLimit(request.memoryLimit)
4848
.timeLimit(request.timeLimit)

src/main/java/org/ezcode/codetest/application/problem/dto/response/ProblemDetailResponse.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import org.ezcode.codetest.domain.problem.model.entity.Problem;
77
import org.ezcode.codetest.domain.problem.model.enums.Category;
8+
import org.ezcode.codetest.domain.problem.model.enums.Difficulty;
89
import org.ezcode.codetest.domain.problem.model.enums.Reference;
910

1011
import io.swagger.v3.oas.annotations.media.Schema;
@@ -32,7 +33,7 @@ public record ProblemDetailResponse(
3233
int score,
3334

3435
@Schema(description = "난이도", example = "BRONZE")
35-
String difficulty,
36+
Difficulty difficulty,
3637

3738
@Schema(description = "메모리 제한(KB)", example = "30000")
3839
Long memoryLimit,

src/main/java/org/ezcode/codetest/application/problem/dto/response/ProblemResponse.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import org.ezcode.codetest.domain.problem.model.entity.Problem;
66
import org.ezcode.codetest.domain.problem.model.enums.Category;
7+
import org.ezcode.codetest.domain.problem.model.enums.Difficulty;
78
import org.ezcode.codetest.domain.problem.model.enums.Reference;
89

910
import io.swagger.v3.oas.annotations.media.Schema;
@@ -28,7 +29,7 @@ public record ProblemResponse(
2829
int score,
2930

3031
@Schema(description = "난이도", example = "BRONZE")
31-
String difficulty,
32+
Difficulty difficulty,
3233

3334
@Schema(description = "출처", example = "ORIGINAL")
3435
Reference reference

src/main/java/org/ezcode/codetest/application/problem/dto/response/ProblemSearchResponse.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.ezcode.codetest.application.problem.dto.response;
22

3+
import java.util.List;
4+
35
import org.ezcode.codetest.domain.problem.model.entity.ProblemSearchDocument;
46

57
import lombok.Builder;
@@ -11,7 +13,7 @@ public record ProblemSearchResponse(
1113

1214
String title,
1315

14-
String category,
16+
List<String> category,
1517

1618
String difficulty,
1719

@@ -27,7 +29,7 @@ public static ProblemSearchResponse from(ProblemSearchDocument document) {
2729
return ProblemSearchResponse.builder()
2830
.id(document.getId())
2931
.title(document.getTitle())
30-
.category(document.getCategories().toString())
32+
.category(document.getCategories().stream().map(Enum::toString).toList())
3133
.difficulty(document.getDifficulty())
3234
.reference(document.getReference().toString())
3335
.description(document.getDescription())

src/main/java/org/ezcode/codetest/domain/problem/model/entity/Problem.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,9 @@ public class Problem extends BaseEntity {
5050
@Column(nullable = false)
5151
private int score;
5252

53+
@Enumerated(EnumType.STRING)
5354
@Column(nullable = false)
54-
private String difficulty;
55+
private Difficulty difficulty;
5556

5657
@Column(nullable = false)
5758
private Long memoryLimit;
@@ -89,7 +90,7 @@ public class Problem extends BaseEntity {
8990

9091
@Builder
9192
public Problem(User creator, List<Category> categories, String title, String description, int score,
92-
String difficulty,
93+
Difficulty difficulty,
9394
Long memoryLimit, Long timeLimit, Reference reference) {
9495
this.creator = creator;
9596
this.categories = categories;
@@ -107,7 +108,7 @@ public Problem(User creator, List<Category> categories, String title, String des
107108

108109
// 여러개를 하나의 객체로 만드는 것
109110
public static Problem of(User creator, List<Category> categories, String title, String description, int score,
110-
String difficulty,
111+
Difficulty difficulty,
111112
Long memoryLimit, Long timeLimit, Reference reference) {
112113

113114
return Problem.builder()
@@ -136,7 +137,7 @@ public void update(User creator, List<Category> categories, String title, String
136137
if (description != null)
137138
this.description = description;
138139
if (difficulty != null) {
139-
this.difficulty = difficulty.getDifficulty();
140+
this.difficulty = difficulty;
140141
this.score = difficulty.getScore();
141142
}
142143
if (memoryLimit != null)

src/main/java/org/ezcode/codetest/domain/problem/model/entity/ProblemSearchDocument.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,12 +183,12 @@ public static ProblemSearchDocument from(Problem problem) {
183183
.id(problem.getId())
184184
.title(problem.getTitle())
185185
.categories(problem.getCategories())
186-
.difficulty(problem.getDifficulty())
186+
.difficulty(problem.getDifficulty().getDifficulty())
187187
.reference(problem.getReference())
188188
.description(problem.getDescription())
189189
.score(problem.getScore())
190190
.categoriesKor(problem.getCategories().stream().map(Category::getDescription).toList())
191-
.difficultyEn(Difficulty.getDifficultyFromKor(problem.getDifficulty()))
191+
.difficultyEn(problem.getDifficulty())
192192
.referenceKor(problem.getReference().getDescription())
193193
.isDeleted(problem.getIsDeleted())
194194
.build();
@@ -202,8 +202,11 @@ public void update(Problem problem) {
202202
if (problem.getId().equals(this.id)) {
203203
this.title = problem.getTitle();
204204
this.categories = problem.getCategories();
205-
this.difficulty = problem.getDifficulty();
205+
this.categoriesKor = problem.getCategories().stream().map(Category::getDescription).toList();
206+
this.difficulty = problem.getDifficulty().getDifficulty();
207+
this.difficultyEn = problem.getDifficulty();
206208
this.reference = problem.getReference();
209+
this.referenceKor = problem.getReference().getDescription();
207210
this.description = problem.getDescription();
208211
this.score = problem.getScore();
209212
}

src/main/java/org/ezcode/codetest/domain/problem/model/enums/Difficulty.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99

1010
@Getter
1111
public enum Difficulty {
12-
LV1("1", 10),
13-
LV2("2", 20),
14-
LV3("3", 40),
15-
LV4("4", 80),
16-
LV5("5", 160),
17-
LV6("6", 320),
18-
LV7("7", 640);
12+
LV1("레벨1", 10),
13+
LV2("레벨2", 20),
14+
LV3("레벨3", 40),
15+
LV4("레벨4", 80),
16+
LV5("레벨5", 160),
17+
LV6("레벨6", 320),
18+
LV7("레벨7", 640);
1919

2020
private final String difficulty;
2121

src/main/java/org/ezcode/codetest/infrastructure/persistence/repository/problem/ProblemQueryRepositoryImpl.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.ezcode.codetest.domain.problem.model.ProblemSearchCondition;
66
import org.ezcode.codetest.domain.problem.model.entity.Problem;
77
import org.ezcode.codetest.domain.problem.model.entity.QProblem;
8+
import org.ezcode.codetest.domain.problem.model.enums.Difficulty;
89
import org.springframework.data.domain.Page;
910
import org.springframework.data.domain.PageImpl;
1011
import org.springframework.data.domain.Pageable;
@@ -31,12 +32,12 @@ public Page<Problem> searchByCondition(Pageable pageable, ProblemSearchCondition
3132

3233
builder.and(problem.isDeleted.isFalse());
3334

34-
// if(searchCondition.category() != null) {
35-
// builder.and(problem.categories.eq(searchCondition.category().));
36-
// }
35+
if(searchCondition.category() != null) {
36+
builder.and(problem.categories.contains(searchCondition.category()));
37+
}
3738

3839
if(searchCondition.difficulty() != null) {
39-
builder.and(problem.difficulty.eq(searchCondition.difficulty()));
40+
builder.and(problem.difficulty.eq(Difficulty.valueOf(searchCondition.difficulty())));
4041
}
4142

4243
List<Problem> content = jpaQueryFactory

0 commit comments

Comments
 (0)