Skip to content

Commit 4384ff5

Browse files
committed
[BOOK-212] feat: 씨앗 통계 조회 API 스펙 변경 반영
BookDetailScreen 으로 이동시 필요한 파라미터 추가(userBookId)
1 parent d699260 commit 4384ff5

File tree

16 files changed

+35
-27
lines changed

16 files changed

+35
-27
lines changed

core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/String.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@ fun String.decodeHtmlEntities(): String {
1414
}
1515

1616
fun String.formatPublishYear(): String {
17-
return try {
18-
val year = this.substringBefore("-")
19-
"${year}"
20-
} catch (e: Exception) {
21-
this
22-
}
17+
val year = this.substringBefore("-")
18+
return "${year}"
2319
}

core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,5 @@ interface BookRepository {
3333
size: Int,
3434
): Result<LibraryModel>
3535

36-
suspend fun getSeedsStats(): Result<SeedModel>
37-
36+
suspend fun getSeedsStats(userBookId: String): Result<SeedModel>
3837
}

core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import com.ninecraft.booket.core.common.utils.runSuspendCatching
44
import com.ninecraft.booket.core.data.api.repository.BookRepository
55
import com.ninecraft.booket.core.data.impl.mapper.toModel
66
import com.ninecraft.booket.core.datastore.api.datasource.RecentSearchDataSource
7-
import com.ninecraft.booket.core.model.SeedModel
87
import com.ninecraft.booket.core.network.request.BookUpsertRequest
98
import com.ninecraft.booket.core.network.service.ReedService
109
import javax.inject.Inject
@@ -52,7 +51,7 @@ internal class DefaultBookRepository @Inject constructor(
5251
service.getLibrary(status, page, size).toModel()
5352
}
5453

55-
override suspend fun getSeedsStats() = runSuspendCatching {
56-
service.getSeedsStats().toModel()
54+
override suspend fun getSeedsStats(userBookId: String) = runSuspendCatching {
55+
service.getSeedsStats(userBookId).toModel()
5756
}
5857
}

core/model/src/main/kotlin/com/ninecraft/booket/core/model/SeedModel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ enum class Emotion(
1919
WARM("따뜻함"),
2020
JOY("즐거움"),
2121
TENSION("긴장감"),
22-
SADNESS("슬픔");
22+
SADNESS("슬픔"),
23+
;
2324

2425
companion object {
2526
fun fromDisplayName(displayName: String): Emotion? {

core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,5 +94,7 @@ interface ReedService {
9494

9595
// Seed (auth required)
9696
@GET("api/v1/seeds/stats")
97-
suspend fun getSeedsStats(): SeedResponse
97+
suspend fun getSeedsStats(
98+
@Query("userBookId") userBookId: String,
99+
): SeedResponse
98100
}

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import com.ninecraft.booket.core.common.utils.handleException
1111
import com.ninecraft.booket.core.data.api.repository.BookRepository
1212
import com.ninecraft.booket.core.model.BookDetailModel
1313
import com.ninecraft.booket.core.model.EmotionModel
14-
import com.ninecraft.booket.core.model.SeedModel
1514
import com.ninecraft.booket.feature.screens.BookDetailScreen
1615
import com.ninecraft.booket.feature.screens.LoginScreen
1716
import com.ninecraft.booket.feature.screens.RecordDetailScreen
@@ -53,7 +52,7 @@ class BookDetailPresenter @AssistedInject constructor(
5352
scope.launch {
5453
try {
5554
isLoading = true
56-
repository.getSeedsStats()
55+
repository.getSeedsStats(screen.userBookId)
5756
.onSuccess { result ->
5857
seedsStates = result.categories.toImmutableList()
5958
}

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ internal fun BookDetailContent(
149149
},
150150
text = stringResource(
151151
BookStatus.fromValue(state.bookDetail.userBookStatus)?.getDisplayNameRes()
152-
?: BookStatus.BEFORE_READING.getDisplayNameRes()
152+
?: BookStatus.BEFORE_READING.getDisplayNameRes(),
153153
),
154154
sizeStyle = largeButtonStyle,
155155
colorStyle = ReedButtonColorStyle.SECONDARY,
@@ -189,7 +189,7 @@ internal fun BookDetailContent(
189189

190190
item {
191191
Column(
192-
modifier = Modifier.padding(horizontal = ReedTheme.spacing.spacing5)
192+
modifier = Modifier.padding(horizontal = ReedTheme.spacing.spacing5),
193193
) {
194194
Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6))
195195
RecordsCollectionHeader(state = state)

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/CollectedSeeds.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,9 @@ import com.ninecraft.booket.core.designsystem.ComponentPreview
2222
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
2323
import com.ninecraft.booket.core.model.Emotion
2424
import com.ninecraft.booket.core.model.EmotionModel
25-
import com.ninecraft.booket.core.model.SeedModel
2625
import com.ninecraft.booket.feature.detail.R
2726
import kotlinx.collections.immutable.ImmutableList
2827
import kotlinx.collections.immutable.persistentListOf
29-
import kotlinx.collections.immutable.toImmutableList
3028

3129
@Composable
3230
internal fun CollectedSeeds(

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/EmotionAnalysisResultText.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ internal fun EmotionAnalysisResultText(
3636

3737
return when (analysisResult.displayType) {
3838
EmotionDisplayType.NONE -> null
39-
39+
4040
EmotionDisplayType.SINGLE -> {
4141
val emotion = analysisResult.topEmotions.first()
4242
buildAnnotatedString {

feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class HomePresenter @AssistedInject constructor(
8080
}
8181

8282
is HomeUiEvent.OnBookDetailClick -> {
83-
navigator.goTo(BookDetailScreen(event.userBookId))
83+
navigator.goTo(BookDetailScreen(event.userBookId, event.isbn))
8484
}
8585
}
8686
}

0 commit comments

Comments
 (0)