-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨ ID を元にスケジュールを取得するユースケースを追加 #117
Conversation
Walkthrough全体的な変更は、スケジュール関連の機能の再編成とリファクタリングに焦点を当てています。特に、 Changes
TipsChat with CodeRabbit Bot (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 2
Configuration used: CodeRabbit UI
Files selected for processing (21)
- app/ios-combined/src/iosTest/kotlin/club/nito/ios/combined/EntryPointTest.kt (2 hunks)
- app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt (3 hunks)
- core/data/src/commonMain/kotlin/club/nito/core/data/OfflineFirstScheduleRepository.kt (2 hunks)
- core/data/src/commonMain/kotlin/club/nito/core/data/ScheduleRepository.kt (2 hunks)
- core/domain/src/commonMain/kotlin/club/nito/core/domain/FetchParticipantScheduleByIdUseCase.kt (1 hunks)
- core/domain/src/commonMain/kotlin/club/nito/core/domain/di/UseCaseModule.kt (2 hunks)
- core/domain/src/commonMain/kotlin/club/nito/core/domain/extension/ParticipantExtensions.kt (1 hunks)
- core/domain/src/commonMain/kotlin/club/nito/core/domain/model/ParticipantSchedule.kt (1 hunks)
- core/model/src/commonMain/kotlin/club/nito/core/model/schedule/Schedule.kt (1 hunks)
- core/model/src/commonMain/kotlin/club/nito/core/model/schedule/ScheduleId.kt (1 hunks)
- core/network/src/commonMain/kotlin/club/nito/core/network/schedule/FakeScheduleRemoteDataSource.kt (2 hunks)
- core/network/src/commonMain/kotlin/club/nito/core/network/schedule/ScheduleRemoteDataSource.kt (2 hunks)
- core/network/src/commonMain/kotlin/club/nito/core/network/schedule/SupabaseScheduleRemoteDataSource.kt (3 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt (1 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListEvent.kt (1 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListIntent.kt (1 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt (2 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreenUiState.kt (1 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt (2 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleNavigation.kt (1 hunks)
- feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt (1 hunks)
Files skipped from review due to trivial changes (1)
- core/model/src/commonMain/kotlin/club/nito/core/model/schedule/ScheduleId.kt
Additional comments: 37
app/ios-combined/src/iosTest/kotlin/club/nito/ios/combined/EntryPointTest.kt (2)
3-15: インポートステートメントの追加は問題なく、適切な場所に配置されています。
40-46:
FetchParticipantScheduleByIdUseCase
のテストが追加され、kmpEntryPoint
から正しく取得できることが確認されています。app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt (3)
7-14: 変更されたインポートステートメントは、スケジュール機能に関連するコントロールフローとロジックの変更を示しています。これは、PRの目的と要約に一致しています。
43-46:
topScreen
関数のonScheduleListClick
パラメータがnavigateToScheduleList
を使用するように更新されています。これは、スケジュールリスト機能への変更を反映しています。59-62:
scheduleListScreen
が追加され、settingsScreen
関数のonSignedOut
パラメータがnavigateToLogin
を使用するように更新されています。これは、ログイン機能と設定機能の間のフローを適切に管理するための変更です。core/data/src/commonMain/kotlin/club/nito/core/data/OfflineFirstScheduleRepository.kt (1)
- 29-29: 新しいメソッド
fetchSchedule
がScheduleId
を引数に取るように追加されています。これはPRの目的と要約に合致しており、変更は適切に見えます。core/data/src/commonMain/kotlin/club/nito/core/data/ScheduleRepository.kt (1)
- 23-23: 新しいメソッド
fetchSchedule
は、PRの目的に沿って正しく追加されています。このメソッドは、スケジュールIDに基づいてスケジュールを取得するためのもので、suspend
修飾子が付けられているため、コルーチンから呼び出すことができます。この変更は、レビューの焦点となる新しい機能性をコードベースに導入するものです。core/domain/src/commonMain/kotlin/club/nito/core/domain/FetchParticipantScheduleByIdUseCase.kt (1)
- 18-64: コードはPRの目的に沿っており、
FetchParticipantScheduleByIdUseCase
とその実行者FetchParticipantScheduleByIdExecutor
が正しく実装されています。例外処理も適切に行われており、invoke
メソッドは予期しないエラーが発生した場合にFetchSingleContentResult.Failure
を返すようになっています。また、transformToParticipantSchedule
メソッドはスケジュールIDとユーザーIDに基づいて参加者とユーザープロファイルを正しくフィルタリングしています。全体として、レビュー対象のコードは問題ないと思われます。core/domain/src/commonMain/kotlin/club/nito/core/domain/di/UseCaseModule.kt (3)
5-6: 新しいユースケースとエグゼキューターが追加されたことを確認してください。これは、スケジュールをIDで取得する新しい機能をサポートするための変更です。
29-29:
FetchParticipantScheduleByIdExecutor
がFetchParticipantScheduleByIdUseCase
にバインドされていることを確認してください。これは、依存性注入モジュールに正しく追加されています。2-9: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [3-32]
他のコードベースの部分にも、
ScheduleId
の導入やコンポーネントの名前変更・再編成による影響がないか確認してください。core/domain/src/commonMain/kotlin/club/nito/core/domain/extension/ParticipantExtensions.kt (1)
- 5-13: コードのロジックに明らかな問題は見当たりません。ただし、これらの関数が他のコードとどのように統合されているかについてのコンテキストが提供されていないため、システム全体への影響についてはコメントできません。
Participant
クラスにuserId
フィールドが存在することを前提としていますが、このレビューではそのクラスの定義は表示されていません。これらの関数が意図した通りに動作することを確認するためには、Participant
クラスの定義を確認する必要があります。core/domain/src/commonMain/kotlin/club/nito/core/domain/model/ParticipantSchedule.kt (1)
- 7-11: 変更は
ParticipantSchedule
データクラスのid
フィールドの型をString
からScheduleId
に変更することを示しています。この変更は、PRの目的と提供された要約と一致しています。コードに明らかな問題は見られません。core/model/src/commonMain/kotlin/club/nito/core/model/schedule/Schedule.kt (1)
- 3-7: スケジュールクラスの
id
フィールドがScheduleId
型を使用するように変更されました。この変更がコードベース全体で適切に反映されているか確認してください。core/network/src/commonMain/kotlin/club/nito/core/network/schedule/FakeScheduleRemoteDataSource.kt (2)
5-5: 新しいインポート文
ScheduleId
が追加されています。これはPRの目的と要約に一致しています。31-35:
fetchSchedule
関数のシグネチャがString
からScheduleId
に変更されています。これはPRの目的と要約に一致しています。また、戻り値を処理するためにlet
関数が使用されていますが、これはコードの正確さに影響を与えません。core/network/src/commonMain/kotlin/club/nito/core/network/schedule/ScheduleRemoteDataSource.kt (3)
3-5: 新しいインポートが追加されています。これは、
ScheduleId
型を使用するために必要です。8-8:
ScheduleRemoteDataSource
インターフェースの変更は、プルリクエストの目的に沿っています。18-18: 関数名の変更とパラメータの型の変更は、プルリクエストの目的に沿っています。
fetchSchedule
関数は、ScheduleId
型のid
を受け取るようになりました。core/network/src/commonMain/kotlin/club/nito/core/network/schedule/SupabaseScheduleRemoteDataSource.kt (4)
3-7: 新しいインポート文が追加されました。
ScheduleId
のインポートは、このファイルでScheduleId
型を使用するために必要です。13-17:
Column
列挙型にID
という新しい定数が追加されました。これは、IDによるスケジュールの取得機能をサポートするための変更です。43-54: 関数
getSchedule
がfetchSchedule
に名前が変更され、そのパラメータの型がString
からScheduleId
に変更されました。これは、PRの目的に沿った重要な変更です。45-53:
fetchSchedule
関数には、ID
列との等価性をチェックする新しいフィルタ条件が追加されました。これは、IDによるスケジュールの取得に必要です。feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListEvent.kt (1)
- 4-4: The
NavigateToScheduleDetail
event still uses aString
forscheduleId
instead of theScheduleId
type mentioned in the PR summary. Please verify if this is intentional or an oversight.- public data class NavigateToScheduleDetail(val scheduleId: String) : ScheduleListEvent() + public data class NavigateToScheduleDetail(val scheduleId: ScheduleId) : ScheduleListEvent()feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListIntent.kt (1)
- 1-1: パッケージ宣言が
club.nito.feature.schedule
からclub.nito.feature.schedule.list
に変更されました。これは、PRの目的と要約に記載されている通りです。feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt (2)
51-56:
ScheduleListScreen
関数がprivate
に変更されました。これは他のコードベースの部分からのアクセシビリティに影響を与える可能性があります。この変更が意図的であるかどうかを確認してください。56-56:
dispatch
パラメータにデフォルト値として空のラムダが設定されています。この関数がディスパッチ関数を提供せずに呼び出された場合、問題が発生する可能性があります。意図的なデザインかどうかを確認してください。feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreenUiState.kt (2)
3-4: インポート文に問題は見受けられません。
ScheduleListScreenUiState
クラスの定義も適切です。3-4:
ConfirmParticipateDialogUiState
シールドクラスは適切に定義されており、Kotlinのベストプラクティスに従っています。feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt (4)
1-1: パッケージ宣言が
club.nito.feature.schedule
からclub.nito.feature.schedule.list
に変更されています。これは、概要で述べられた変更と一致しています。19-19: クラス名が
ScheduleListViewModel
からScheduleListStateMachine
に変更されています。これは、概要で述べられた変更と一致しています。20-20: パラメータ
getParticipantScheduleListUseCase
がgetParticipantScheduleList
に名前が変更されています。これは、概要で述べられた変更と一致しています。27-30:
scheduleList
の初期化がgetParticipantScheduleListUseCase()
からgetParticipantScheduleList()
を使用するように変更されています。これは、概要で述べられた変更と一致しています。feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleNavigation.kt (1)
- 1-19: > 💡 NOTE
Codebase verification is a beta feature.
変更された関数名
navigateToScheduleList
とscheduleListScreen
、定数scheduleNavigationRoute
がコードベース内で適切に更新されていることが確認されました。特に、app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt
ファイルでの使用が確認されています。古い関数名や定数が検索結果に現れなかったため、これらの変更は問題なく適用されていると考えられます。feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt (3)
1-1: パッケージ宣言が
club.nito.feature.schedule
からclub.nito.feature.schedule.list
に変更されています。これはPRの目的と提供されたサマリーに一致しています。9-9:
ScheduleListRouteViewController
関数のパラメータがviewModel
からstateMachine
に変更されています。これはViewModelからStateMachineへのアーキテクチャの変更に合わせています。12-13:
ScheduleListRoute
関数がリネームされたパラメータstateMachine
を使用しており、変更内容と一致しています。
import club.nito.feature.schedule.list.ScheduleListStateMachine | ||
import org.koin.core.module.Module | ||
import org.koin.dsl.module | ||
|
||
public val scheduleFeatureModule: Module = module { | ||
factory { | ||
ScheduleListViewModel( | ||
getParticipantScheduleListUseCase = get(), | ||
ScheduleListStateMachine( | ||
getParticipantScheduleList = get(), | ||
userMessageStateHolder = get(), | ||
dateTimeFormatter = get(), | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 NOTE
Codebase verification is a beta feature.
ScheduleListViewModel
からScheduleListStateMachine
への変更が確認されました。しかし、app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swift
においてScheduleListViewModel
の参照が残っているため、この部分の更新が必要です。新しいScheduleListStateMachine
の使用は他のファイルで確認されています。
@@ -1,4 +1,4 @@ | |||
package club.nito.feature.schedule | |||
package club.nito.feature.schedule.list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 NOTE
Codebase verification is a beta feature.
パッケージ宣言がclub.nito.feature.schedule
からclub.nito.feature.schedule.list
に変更されたことが確認されました。この変更は、以下のファイルに影響を与える可能性があります:
feature/schedule/build.gradle.kts
: ネームスペースの宣言が古いパッケージ名を参照しています。feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt
: インポート文が新しいパッケージ構造を反映しているか確認が必要です。app/shared/src/commonMain/kotlin/club/nito/app/shared/di/FeatureModules.kt
とapp/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt
: これらのファイルは古いパッケージ名をインポートしているため、更新が必要です。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 0
Configuration used: CodeRabbit UI
Files selected for processing (6)
- app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swift (1 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt (1 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt (4 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreenUiState.kt (1 hunks)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt (4 hunks)
- feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt (1 hunks)
Files skipped from review due to trivial changes (1)
- feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt
Files skipped from review as they are similar to previous changes (4)
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreenUiState.kt
- feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt
Additional comments: 1
app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swift (1)
- 9-18: 変更された
makeUIViewController
メソッドにおいて、ScheduleListStateMachine
の初期化が適切に行われており、PRの目的と提供されたサマリーに沿っています。viewModel
からstateMachine
への置き換え、getParticipantScheduleListUseCase
からgetParticipantScheduleList
への名称変更、dateTimeFormatter
からdateFormatter
への名称変更が反映されています。
Issue
概要
ID を元にスケジュールを取得するユースケースを追加します。
レビュー観点
特になし
レビューレベル
レビュー優先度
参考リンク
スクリーンショット
Summary by CodeRabbit
新機能
バグ修正
ドキュメント
リファクタリング
スタイル
テスト
その他の作業
リバート