Skip to content

Commit 3b82956

Browse files
committed
[BOOK-377] fix: apis,domain,infra - 감상평 Optional로 수정 및 valid메소드 수정(#126)
1 parent 13142b0 commit 3b82956

File tree

8 files changed

+25
-27
lines changed

8 files changed

+25
-27
lines changed

apis/src/main/kotlin/org/yapp/apis/readingrecord/dto/request/CreateReadingRecordRequest.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,11 @@ data class CreateReadingRecordRequest private constructor(
3838
@field:Schema(description = "감정 태그 목록 (현재는 최대 1개, 확장 가능)", example = "[\"감동적\"]")
3939
val emotionTags: List<@Size(max = 10, message = "감정 태그는 10자를 초과할 수 없습니다.") String> = emptyList()
4040
) {
41-
fun validPageNumber(): Int = pageNumber!!
42-
fun validQuote(): String = quote!!
41+
fun validPageNumber(): Int =
42+
requireNotNull(pageNumber) { "pageNumber는 null일 수 없습니다." }
43+
44+
fun validQuote(): String =
45+
requireNotNull(quote) { "quote는 null일 수 없습니다." }
4346

4447
fun validEmotionTags(): List<String> = emotionTags
4548
}

apis/src/main/kotlin/org/yapp/apis/readingrecord/dto/request/UpdateReadingRecordRequest.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,4 @@ data class UpdateReadingRecordRequest private constructor(
3434
@field:Size(max = 3, message = "감정 태그는 최대 3개까지 가능합니다.")
3535
@field:Schema(description = "수정할 감정 태그 목록", example = """["따뜻함","즐거움","슬픔","깨달음"]""")
3636
val emotionTags: List<@Size(max = 10, message = "감정 태그는 10자를 초과할 수 없습니다.") String>?
37-
) {
38-
fun validPageNumber(): Int = pageNumber!!
39-
fun validQuote(): String = quote!!
40-
41-
fun validEmotionTags(): List<String> = emotionTags!!
42-
}
37+
)

apis/src/main/kotlin/org/yapp/apis/readingrecord/dto/response/ReadingRecordResponse.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ data class ReadingRecordResponse private constructor(
2424
val quote: String,
2525

2626
@field:Schema(description = "감상평", example = "이 책은 매우 인상적이었습니다.")
27-
val review: String,
27+
val review: String?,
2828

2929
@field:Schema(description = "감정 태그 목록", example = "[\"감동적\", \"슬픔\", \"희망\"]")
3030
val emotionTags: List<String>,
@@ -56,7 +56,7 @@ data class ReadingRecordResponse private constructor(
5656
userBookId = readingRecordInfoVO.userBookId.value,
5757
pageNumber = readingRecordInfoVO.pageNumber.value,
5858
quote = readingRecordInfoVO.quote.value,
59-
review = readingRecordInfoVO.review.value,
59+
review = readingRecordInfoVO.review?.value,
6060
emotionTags = readingRecordInfoVO.emotionTags,
6161
createdAt = readingRecordInfoVO.createdAt.format(dateTimeFormatter),
6262
updatedAt = readingRecordInfoVO.updatedAt.format(dateTimeFormatter),

apis/src/main/kotlin/org/yapp/apis/readingrecord/service/ReadingRecordService.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ReadingRecordService(
2525
userBookId = userBookId,
2626
pageNumber = request.validPageNumber(),
2727
quote = request.validQuote(),
28-
review = request.validReview(),
28+
review = request.review,
2929
emotionTags = request.validEmotionTags()
3030
)
3131

@@ -62,10 +62,10 @@ class ReadingRecordService(
6262
): ReadingRecordResponse {
6363
val readingRecordInfoVO = readingRecordDomainService.modifyReadingRecord(
6464
readingRecordId = readingRecordId,
65-
pageNumber = request.validPageNumber(),
66-
quote = request.validQuote(),
67-
review = request.validReview(),
68-
emotionTags = request.validEmotionTags()
65+
pageNumber = request.pageNumber,
66+
quote = request.quote,
67+
review = request.review,
68+
emotionTags = request.emotionTags
6969
)
7070

7171
// Update user's lastActivity when a reading record is updated

domain/src/main/kotlin/org/yapp/domain/readingrecord/ReadingRecord.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ data class ReadingRecord private constructor(
99
val userBookId: UserBookId,
1010
val pageNumber: PageNumber,
1111
val quote: Quote,
12-
val review: Review,
12+
val review: Review?,
1313
val emotionTags: List<EmotionTag> = emptyList(),
1414
val createdAt: LocalDateTime? = null,
1515
val updatedAt: LocalDateTime? = null,
@@ -20,15 +20,15 @@ data class ReadingRecord private constructor(
2020
userBookId: UUID,
2121
pageNumber: Int,
2222
quote: String,
23-
review: String,
23+
review: String?,
2424
emotionTags: List<String> = emptyList()
2525
): ReadingRecord {
2626
return ReadingRecord(
2727
id = Id.newInstance(UuidGenerator.create()),
2828
userBookId = UserBookId.newInstance(userBookId),
2929
pageNumber = PageNumber.newInstance(pageNumber),
3030
quote = Quote.newInstance(quote),
31-
review = Review.newInstance(review),
31+
review = review?.let { Review.newInstance(it) },
3232
emotionTags = emotionTags.map { EmotionTag.newInstance(it) }
3333
)
3434
}
@@ -38,7 +38,7 @@ data class ReadingRecord private constructor(
3838
userBookId: UserBookId,
3939
pageNumber: PageNumber,
4040
quote: Quote,
41-
review: Review,
41+
review: Review?,
4242
emotionTags: List<EmotionTag> = emptyList(),
4343
createdAt: LocalDateTime? = null,
4444
updatedAt: LocalDateTime? = null,
@@ -67,7 +67,7 @@ data class ReadingRecord private constructor(
6767
return this.copy(
6868
pageNumber = pageNumber?.let { PageNumber.newInstance(it) } ?: this.pageNumber,
6969
quote = quote?.let { Quote.newInstance(it) } ?: this.quote,
70-
review = review?.let { Review.newInstance(it) } ?: this.review,
70+
review = review?.let { Review.newInstance(it) },
7171
emotionTags = emotionTags?.map { EmotionTag.newInstance(it) } ?: this.emotionTags,
7272
updatedAt = LocalDateTime.now()
7373
)

domain/src/main/kotlin/org/yapp/domain/readingrecord/ReadingRecordDomainService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class ReadingRecordDomainService(
2828
userBookId: UUID,
2929
pageNumber: Int,
3030
quote: String,
31-
review: String,
31+
review: String?,
3232
emotionTags: List<String>
3333
): ReadingRecordInfoVO {
3434
val userBook = userBookRepository.findById(userBookId)

domain/src/main/kotlin/org/yapp/domain/readingrecord/vo/ReadingRecordInfoVO.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ data class ReadingRecordInfoVO private constructor(
88
val userBookId: ReadingRecord.UserBookId,
99
val pageNumber: ReadingRecord.PageNumber,
1010
val quote: ReadingRecord.Quote,
11-
val review: ReadingRecord.Review,
11+
val review: ReadingRecord.Review?,
1212
val emotionTags: List<String>,
1313
val createdAt: LocalDateTime,
1414
val updatedAt: LocalDateTime,

infra/src/main/kotlin/org/yapp/infra/readingrecord/entity/ReadingRecordEntity.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ReadingRecordEntity(
2525

2626
pageNumber: Int,
2727
quote: String,
28-
review: String,
28+
review: String?,
2929

3030

3131
) : BaseTimeEntity() {
@@ -38,8 +38,8 @@ class ReadingRecordEntity(
3838
var quote: String = quote
3939
protected set
4040

41-
@Column(name = "review", nullable = false, length = 1000)
42-
var review: String = review
41+
@Column(name = "review", nullable = true, length = 1000)
42+
var review: String? = review
4343
protected set
4444

4545
fun toDomain(): ReadingRecord {
@@ -48,7 +48,7 @@ class ReadingRecordEntity(
4848
userBookId = ReadingRecord.UserBookId.newInstance(this.userBookId),
4949
pageNumber = ReadingRecord.PageNumber.newInstance(this.pageNumber),
5050
quote = ReadingRecord.Quote.newInstance(this.quote),
51-
review = ReadingRecord.Review.newInstance(this.review),
51+
review = this.review?.let { ReadingRecord.Review.newInstance(it) },
5252
emotionTags = emptyList(),
5353
createdAt = this.createdAt,
5454
updatedAt = this.updatedAt,
@@ -63,7 +63,7 @@ class ReadingRecordEntity(
6363
userBookId = readingRecord.userBookId.value,
6464
pageNumber = readingRecord.pageNumber.value,
6565
quote = readingRecord.quote.value,
66-
review = readingRecord.review.value
66+
review = readingRecord.review?.value
6767
)
6868
}
6969
}

0 commit comments

Comments
 (0)