diff --git a/app/src/main/java/com/smashing/app/data/remote/datasource/api/ReviewRemoteDataSource.kt b/app/src/main/java/com/smashing/app/data/remote/datasource/api/ReviewRemoteDataSource.kt index 6e0cef11b..ca3ad29cb 100644 --- a/app/src/main/java/com/smashing/app/data/remote/datasource/api/ReviewRemoteDataSource.kt +++ b/app/src/main/java/com/smashing/app/data/remote/datasource/api/ReviewRemoteDataSource.kt @@ -13,7 +13,7 @@ interface ReviewRemoteDataSource { ): BaseResponse suspend fun getUserRecentReviewList( - userId: String, + userProfileId: String, sportCode: String?, cursor: String?, size: Int?, diff --git a/app/src/main/java/com/smashing/app/data/remote/datasource/api/UserRemoteDataSource.kt b/app/src/main/java/com/smashing/app/data/remote/datasource/api/UserRemoteDataSource.kt index 9b51fb1c1..f349ae8e3 100644 --- a/app/src/main/java/com/smashing/app/data/remote/datasource/api/UserRemoteDataSource.kt +++ b/app/src/main/java/com/smashing/app/data/remote/datasource/api/UserRemoteDataSource.kt @@ -5,6 +5,6 @@ import com.smashing.app.data.remote.dto.user.GetUserInfoDetailResponse import com.smashing.app.data.remote.dto.user.GetUserRecentReviewStatsResponse interface UserRemoteDataSource { - suspend fun getUserInfoDetail(userId: String, sportCode: String?): BaseResponse - suspend fun getUserRecentReviewStats(userId: String, sportCode: String?): BaseResponse + suspend fun getUserInfoDetail(userProfileId: String, sportCode: String?): BaseResponse + suspend fun getUserRecentReviewStats(userProfileId: String, sportCode: String?): BaseResponse } diff --git a/app/src/main/java/com/smashing/app/data/remote/datasource/impl/ReviewRemoteDataSourceImpl.kt b/app/src/main/java/com/smashing/app/data/remote/datasource/impl/ReviewRemoteDataSourceImpl.kt index 178e3a7d4..eddcfc561 100644 --- a/app/src/main/java/com/smashing/app/data/remote/datasource/impl/ReviewRemoteDataSourceImpl.kt +++ b/app/src/main/java/com/smashing/app/data/remote/datasource/impl/ReviewRemoteDataSourceImpl.kt @@ -19,14 +19,14 @@ class ReviewRemoteDataSourceImpl @Inject constructor( reviewService.getReview(reviewId = reviewId) override suspend fun getUserRecentReviewList( - userId: String, + userProfileId: String, sportCode: String?, cursor: String?, size: Int?, snapshotAt: String?, ): BaseResponse> = reviewService.getUserRecentReviewList( - userId = userId, + userProfileId = userProfileId, sportCode = sportCode, cursor = cursor, size = size, diff --git a/app/src/main/java/com/smashing/app/data/remote/datasource/impl/UserRemoteDataSourceImpl.kt b/app/src/main/java/com/smashing/app/data/remote/datasource/impl/UserRemoteDataSourceImpl.kt index cf47d9f6c..a6b2686aa 100644 --- a/app/src/main/java/com/smashing/app/data/remote/datasource/impl/UserRemoteDataSourceImpl.kt +++ b/app/src/main/java/com/smashing/app/data/remote/datasource/impl/UserRemoteDataSourceImpl.kt @@ -12,15 +12,15 @@ class UserRemoteDataSourceImpl @Inject constructor( ) : UserRemoteDataSource { override suspend fun getUserInfoDetail( - userId: String, + userProfileId: String, sportCode: String? ): BaseResponse = - userService.getUserInfoDetail(userId, sportCode) + userService.getUserInfoDetail(userProfileId, sportCode) override suspend fun getUserRecentReviewStats( - userId: String, + userProfileId: String, sportCode: String? ): BaseResponse = - userService.getUserRecentReviewStats(userId, sportCode) + userService.getUserRecentReviewStats(userProfileId, sportCode) } diff --git a/app/src/main/java/com/smashing/app/data/remote/service/ReviewService.kt b/app/src/main/java/com/smashing/app/data/remote/service/ReviewService.kt index d9ffd3a5b..c1dd654e3 100644 --- a/app/src/main/java/com/smashing/app/data/remote/service/ReviewService.kt +++ b/app/src/main/java/com/smashing/app/data/remote/service/ReviewService.kt @@ -17,10 +17,10 @@ interface ReviewService { reviewId: String, ): BaseResponse - @GET("/api/v1/users/{userId}/reviews/recent") + @GET("/api/v1/users/{userProfileId}/reviews/recent") suspend fun getUserRecentReviewList( - @Path("userId") - userId: String, + @Path("userProfileId") + userProfileId: String, @Query("sportCode") sportCode: String?, @Query("cursor") diff --git a/app/src/main/java/com/smashing/app/data/remote/service/UserService.kt b/app/src/main/java/com/smashing/app/data/remote/service/UserService.kt index 555c0220c..5d6281288 100644 --- a/app/src/main/java/com/smashing/app/data/remote/service/UserService.kt +++ b/app/src/main/java/com/smashing/app/data/remote/service/UserService.kt @@ -9,18 +9,18 @@ import retrofit2.http.Query interface UserService { - @GET("/api/v1/users/{userId}/profiles") + @GET("/api/v1/users/{userProfileId}/profiles") suspend fun getUserInfoDetail( - @Path("userId") - userId: String, + @Path("userProfileId") + userProfileId: String, @Query("sportCode") sportCode: String?, ): BaseResponse - @GET("/api/v1/users/{userId}/reviews/summary") + @GET("/api/v1/users/{userProfileId}/reviews/summary") suspend fun getUserRecentReviewStats( - @Path("userId") - userId: String, + @Path("userProfileId") + userProfileId: String, @Query("sportCode") sportCode: String?, ): BaseResponse diff --git a/app/src/main/java/com/smashing/app/data/repository/api/ReviewRepository.kt b/app/src/main/java/com/smashing/app/data/repository/api/ReviewRepository.kt index f26710d7d..def0c4bc8 100644 --- a/app/src/main/java/com/smashing/app/data/repository/api/ReviewRepository.kt +++ b/app/src/main/java/com/smashing/app/data/repository/api/ReviewRepository.kt @@ -6,7 +6,7 @@ import com.smashing.app.data.model.review.ReviewDetail interface ReviewRepository { suspend fun getUserRecentReviewList( - userId: String, + userProfileId: String, sportCode: String?, cursor: String?, size: Int?, diff --git a/app/src/main/java/com/smashing/app/data/repository/api/UserRepository.kt b/app/src/main/java/com/smashing/app/data/repository/api/UserRepository.kt index 9c43e38d7..273cae852 100644 --- a/app/src/main/java/com/smashing/app/data/repository/api/UserRepository.kt +++ b/app/src/main/java/com/smashing/app/data/repository/api/UserRepository.kt @@ -9,11 +9,11 @@ interface UserRepository { suspend fun setUserInfo(userProfileId: String, userNickname: String) suspend fun clearUserInfo() suspend fun getUserInfoDetail( - userId: String, + userProfileId: String, sportCode: String?, ): Result suspend fun getUserRecentReviewStats( - userId: String, + userProfileId: String, sportCode: String?, ): Result } diff --git a/app/src/main/java/com/smashing/app/data/repository/impl/ReviewRepositoryImpl.kt b/app/src/main/java/com/smashing/app/data/repository/impl/ReviewRepositoryImpl.kt index 0fdca90b6..250333970 100644 --- a/app/src/main/java/com/smashing/app/data/repository/impl/ReviewRepositoryImpl.kt +++ b/app/src/main/java/com/smashing/app/data/repository/impl/ReviewRepositoryImpl.kt @@ -24,7 +24,7 @@ class ReviewRepositoryImpl @Inject constructor( } override suspend fun getUserRecentReviewList( - userId: String, + userProfileId: String, sportCode: String?, cursor: String?, size: Int?, @@ -32,7 +32,7 @@ class ReviewRepositoryImpl @Inject constructor( ): Result> = suspendRunCatching { reviewRemoteDataSource.getUserRecentReviewList( - userId = userId, + userProfileId = userProfileId, sportCode = sportCode, cursor = cursor, size = size, diff --git a/app/src/main/java/com/smashing/app/data/repository/impl/UserRepositoryImpl.kt b/app/src/main/java/com/smashing/app/data/repository/impl/UserRepositoryImpl.kt index 112bd53b3..34f0fb727 100644 --- a/app/src/main/java/com/smashing/app/data/repository/impl/UserRepositoryImpl.kt +++ b/app/src/main/java/com/smashing/app/data/repository/impl/UserRepositoryImpl.kt @@ -28,11 +28,11 @@ class UserRepositoryImpl @Inject constructor( localUserDataSource.clearUserInfo() override suspend fun getUserInfoDetail( - userId: String, + userProfileId: String, sportCode: String? ): Result = suspendRunCatching { - userRemoteDataSource.getUserInfoDetail(userId, sportCode).requireData() + userRemoteDataSource.getUserInfoDetail(userProfileId, sportCode).requireData() .toUserProfileInfo() }.recoverCatching { exception -> if (exception is retrofit2.HttpException) { @@ -53,11 +53,11 @@ class UserRepositoryImpl @Inject constructor( } override suspend fun getUserRecentReviewStats( - userId: String, + userProfileId: String, sportCode: String? ): Result = suspendRunCatching { - userRemoteDataSource.getUserRecentReviewStats(userId, sportCode).requireData() + userRemoteDataSource.getUserRecentReviewStats(userProfileId, sportCode).requireData() .toGameReviewResult() } diff --git a/app/src/main/java/com/smashing/app/presentation/profile/navigation/ProfileNavigation.kt b/app/src/main/java/com/smashing/app/presentation/profile/navigation/ProfileNavigation.kt index 3575b1f48..f516a61ce 100644 --- a/app/src/main/java/com/smashing/app/presentation/profile/navigation/ProfileNavigation.kt +++ b/app/src/main/java/com/smashing/app/presentation/profile/navigation/ProfileNavigation.kt @@ -1,19 +1,14 @@ package com.smashing.app.presentation.profile.navigation import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.padding -import androidx.compose.ui.Modifier import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.NavOptions import androidx.navigation.compose.composable import androidx.navigation.navigation import androidx.navigation.toRoute -import com.smashing.app.core.common.navigation.MainTabRoute import com.smashing.app.core.common.navigation.Route -import com.smashing.app.core.extension.clearBackStackWithRestoreNavOptions import com.smashing.app.presentation.addsports.navigation.navigateToAddSports -import com.smashing.app.presentation.home.navigation.navigateToHome import com.smashing.app.presentation.matching.navigation.navigateToMatching import com.smashing.app.presentation.matching.type.MatchingType import com.smashing.app.presentation.profile.myprofile.MyProfileRoute @@ -28,16 +23,16 @@ fun NavController.navigateToMyProfile( ) = navigate(Profile, navOptions) fun NavController.navigateToUserProfile( - userId: String, + userProfileId: String, sportCode: String? = null, navOptions: NavOptions? = null, -) = navigate(UserProfile(userId, sportCode), navOptions) +) = navigate(UserProfile(userProfileId, sportCode), navOptions) fun NavController.navigateToReview( - userId: String? = null, + userProfileId: String? = null, sportCode: String? = null, navOptions: NavOptions? = null, -) = navigate(Review(userId, sportCode), navOptions) +) = navigate(Review(userProfileId, sportCode), navOptions) fun NavGraphBuilder.profileGraph( @@ -72,7 +67,7 @@ fun NavGraphBuilder.profileGraph( ) }, navigateToReport = { - navController.navigateToReport(userProfile.userId) + navController.navigateToReport(userProfile.userProfileId) }, ) } @@ -93,13 +88,13 @@ data object MyProfile : Route @Serializable data class UserProfile( - val userId: String, + val userProfileId: String, val sportCode: String?, ) : Route @Serializable data class Review( - val userId: String?, + val userProfileId: String?, val sportCode: String?, val isUser: Boolean = true, ) : Route diff --git a/app/src/main/java/com/smashing/app/presentation/profile/review/AllReviewViewModel.kt b/app/src/main/java/com/smashing/app/presentation/profile/review/AllReviewViewModel.kt index bb7a96309..743a5b916 100644 --- a/app/src/main/java/com/smashing/app/presentation/profile/review/AllReviewViewModel.kt +++ b/app/src/main/java/com/smashing/app/presentation/profile/review/AllReviewViewModel.kt @@ -27,7 +27,7 @@ class AllReviewViewModel @Inject constructor( private val userData = savedStateHandle.toRoute() - private val userId = userData.userId + private val userProfileId = userData.userProfileId private val sportCode = userData.sportCode private val isUser = userData.isUser @@ -35,7 +35,7 @@ class AllReviewViewModel @Inject constructor( val uiState = _uiState.asStateFlow() init { - if (userId == null && isUser) { + if (userProfileId == null && isUser) { fetchMyProfileReviewList(true) fetchMyRecentReviewStats() } else { @@ -45,7 +45,7 @@ class AllReviewViewModel @Inject constructor( } fun loadMoreReviewList() { - if (userId == null && isUser) { + if (userProfileId == null && isUser) { fetchMyProfileReviewList() } else { fetchUserProfileReviewList() @@ -63,9 +63,9 @@ class AllReviewViewModel @Inject constructor( _uiState.update { it.copy(loadState = ReviewUiState.Loading) } - if (userId != null) { + if (userProfileId != null) { reviewRepository.getUserRecentReviewList( - userId = userId, + userProfileId = userProfileId, sportCode = sportCode, cursor = if (isRefresh) null else currentState.reviewCursor.nextCursor, size = CURSOR_SIZE, @@ -99,9 +99,9 @@ class AllReviewViewModel @Inject constructor( } fun fetchUserRecentReviewStats() = viewModelScope.launch { - if (userId != null) { + if (userProfileId != null) { userRepository.getUserRecentReviewStats( - userId = userId, + userProfileId = userProfileId, sportCode = sportCode, ).onSuccess { data -> _uiState.update { currentState -> diff --git a/app/src/main/java/com/smashing/app/presentation/profile/review/ReviewContract.kt b/app/src/main/java/com/smashing/app/presentation/profile/review/ReviewContract.kt index b5551f37b..893dd7bfd 100644 --- a/app/src/main/java/com/smashing/app/presentation/profile/review/ReviewContract.kt +++ b/app/src/main/java/com/smashing/app/presentation/profile/review/ReviewContract.kt @@ -13,7 +13,7 @@ class ReviewContract { val loadState: ReviewUiState = ReviewUiState.Idle, val gameReview: ImmutableList = persistentListOf(), val gameReviewResult: GameReviewResult = GameReviewResult(), - val userId: String = "", + val userProfileId: String = "", val isMatchingRequest: Boolean = true, val isCompeteButtonEnabled: Boolean = false, val reviewCursor: Cursor = Cursor(), diff --git a/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileContract.kt b/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileContract.kt index c80334d35..0955be518 100644 --- a/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileContract.kt +++ b/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileContract.kt @@ -18,7 +18,7 @@ class UserProfileContract { val selectedSportProfileId: String = "", val gameReview: ImmutableList = persistentListOf(), val gameReviewResult: GameReviewResult = GameReviewResult(), - val userId: String = "", + val userProfileId: String = "", val isMatchingRequest: Boolean = true, val userProfileCursor: Cursor = Cursor(), val isDialogVisible: Boolean = false, @@ -44,7 +44,7 @@ class UserProfileContract { } sealed interface SideEffect { - data class NavigateToAllReview(val userId: String?) : SideEffect + data class NavigateToAllReview(val userProfileId: String?) : SideEffect data object NavigateUp : SideEffect data class ShowToast(val content: String) : SideEffect } diff --git a/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileScreen.kt b/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileScreen.kt index f73bfb5d6..dc889fc62 100644 --- a/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileScreen.kt +++ b/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileScreen.kt @@ -85,7 +85,7 @@ fun UserProfileRoute( viewModel.sideEffect.flowWithLifecycle(lifecycle = lifecycleOwner.lifecycle) .collect { sideEffect -> when (sideEffect) { - is NavigateToAllReview -> navigateToReview(sideEffect.userId) + is NavigateToAllReview -> navigateToReview(sideEffect.userProfileId) is NavigateUp -> navigateUp() is ShowToast -> show.invoke(sideEffect.content) } diff --git a/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileViewModel.kt b/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileViewModel.kt index edcf90b6e..08a11472f 100644 --- a/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileViewModel.kt +++ b/app/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileViewModel.kt @@ -34,7 +34,7 @@ class UserProfileViewModel @Inject constructor( private val userInfo = savedStateHandle.toRoute() - private val userId = userInfo.userId + private val userProfileId = userInfo.userProfileId private val sportCode = userInfo.sportCode private val _uiState = MutableStateFlow(UserProfileContract.State()) @@ -53,7 +53,7 @@ class UserProfileViewModel @Inject constructor( viewModelScope.launch { _uiState.update { it.copy(loadState = UserProfileUiState.Loading) } userRepository.getUserInfoDetail( - userId = userId, + userProfileId= userProfileId, sportCode = sportCode, ).onSuccess { data -> _uiState.update { currentState -> @@ -76,13 +76,13 @@ class UserProfileViewModel @Inject constructor( fun navigateToAllReview() = viewModelScope.launch { _sideEffect.emit( - NavigateToAllReview(userId) + NavigateToAllReview(userProfileId) ) } fun fetchUserRecentReviewStats() = viewModelScope.launch { userRepository.getUserRecentReviewStats( - userId = userId, + userProfileId = userProfileId, sportCode = sportCode, ).onSuccess { data -> _uiState.update { currentState -> @@ -115,7 +115,7 @@ class UserProfileViewModel @Inject constructor( _uiState.update { it.copy(loadState = UserProfileUiState.Loading) } reviewRepository.getUserRecentReviewList( - userId = userId, + userProfileId = userProfileId, sportCode = sportCode, cursor = null, size = CURSOR_SIZE, @@ -237,7 +237,7 @@ class UserProfileViewModel @Inject constructor( fun postBlockUser() = viewModelScope.launch { _uiState.update { it.copy(loadState = UserProfileUiState.Loading) } moderationRepository.postBlockUser( - blockedUserProfileId = userId, + blockedUserProfileId = userProfileId, ).onSuccess { _uiState.update { it.copy(loadState = UserProfileUiState.Success) } _sideEffect.emit(