Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ interface ReviewRemoteDataSource {
): BaseResponse<GetReviewDetailResponse>

suspend fun getUserRecentReviewList(
userId: String,
userProfileId: String,
sportCode: String?,
cursor: String?,
size: Int?,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<GetUserInfoDetailResponse>
suspend fun getUserRecentReviewStats(userId: String, sportCode: String?): BaseResponse<GetUserRecentReviewStatsResponse>
suspend fun getUserInfoDetail(userProfileId: String, sportCode: String?): BaseResponse<GetUserInfoDetailResponse>
suspend fun getUserRecentReviewStats(userProfileId: String, sportCode: String?): BaseResponse<GetUserRecentReviewStatsResponse>
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<CursorDto<GetUserRecentReviewListResponse>> =
reviewService.getUserRecentReviewList(
userId = userId,
userProfileId = userProfileId,
sportCode = sportCode,
cursor = cursor,
size = size,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ class UserRemoteDataSourceImpl @Inject constructor(
) : UserRemoteDataSource {

override suspend fun getUserInfoDetail(
userId: String,
userProfileId: String,
sportCode: String?
): BaseResponse<GetUserInfoDetailResponse> =
userService.getUserInfoDetail(userId, sportCode)
userService.getUserInfoDetail(userProfileId, sportCode)

override suspend fun getUserRecentReviewStats(
userId: String,
userProfileId: String,
sportCode: String?
): BaseResponse<GetUserRecentReviewStatsResponse> =
userService.getUserRecentReviewStats(userId, sportCode)
userService.getUserRecentReviewStats(userProfileId, sportCode)

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ interface ReviewService {
reviewId: String,
): BaseResponse<GetReviewDetailResponse>

@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")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<GetUserInfoDetailResponse>

@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<GetUserRecentReviewStatsResponse>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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?,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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?,
Comment on lines 11 to 13

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p1: 여기구 구현체 impl 쪽은 파라미터 명이 안바뀐거 같은데 확인 부탁드립니다!

): Result<UserProfileInfo>
suspend fun getUserRecentReviewStats(
userId: String,
userProfileId: String,
sportCode: String?,
): Result<GameReviewResult>
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@ class ReviewRepositoryImpl @Inject constructor(
}

override suspend fun getUserRecentReviewList(
userId: String,
userProfileId: String,
sportCode: String?,
cursor: String?,
size: Int?,
snapshotAt: String?,
): Result<CursorPage<GameReview>> =
suspendRunCatching {
reviewRemoteDataSource.getUserRecentReviewList(
userId = userId,
userProfileId = userProfileId,
sportCode = sportCode,
cursor = cursor,
size = size,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ class UserRepositoryImpl @Inject constructor(
localUserDataSource.clearUserInfo()

override suspend fun getUserInfoDetail(
userId: String,
userProfileId: String,
sportCode: String?
): Result<UserProfileInfo> =
suspendRunCatching {
userRemoteDataSource.getUserInfoDetail(userId, sportCode).requireData()
userRemoteDataSource.getUserInfoDetail(userProfileId, sportCode).requireData()
.toUserProfileInfo()
}.recoverCatching { exception ->
if (exception is retrofit2.HttpException) {
Expand All @@ -53,11 +53,11 @@ class UserRepositoryImpl @Inject constructor(
}

override suspend fun getUserRecentReviewStats(
userId: String,
userProfileId: String,
sportCode: String?
): Result<GameReviewResult> =
suspendRunCatching {
userRemoteDataSource.getUserRecentReviewStats(userId, sportCode).requireData()
userRemoteDataSource.getUserRecentReviewStats(userProfileId, sportCode).requireData()
.toGameReviewResult()
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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(
Expand Down Expand Up @@ -72,7 +67,7 @@ fun NavGraphBuilder.profileGraph(
)
},
navigateToReport = {
navController.navigateToReport(userProfile.userId)
navController.navigateToReport(userProfile.userProfileId)
},
)
}
Expand All @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@ class AllReviewViewModel @Inject constructor(

private val userData = savedStateHandle.toRoute<Review>()

private val userId = userData.userId
private val userProfileId = userData.userProfileId
private val sportCode = userData.sportCode
private val isUser = userData.isUser

private val _uiState = MutableStateFlow(ReviewContract.State())
val uiState = _uiState.asStateFlow()

init {
if (userId == null && isUser) {
if (userProfileId == null && isUser) {
fetchMyProfileReviewList(true)
fetchMyRecentReviewStats()
} else {
Expand All @@ -45,7 +45,7 @@ class AllReviewViewModel @Inject constructor(
}

fun loadMoreReviewList() {
if (userId == null && isUser) {
if (userProfileId == null && isUser) {
fetchMyProfileReviewList()
} else {
fetchUserProfileReviewList()
Expand All @@ -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,
Expand Down Expand Up @@ -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 ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class ReviewContract {
val loadState: ReviewUiState = ReviewUiState.Idle,
val gameReview: ImmutableList<GameReview> = persistentListOf(),
val gameReviewResult: GameReviewResult = GameReviewResult(),
val userId: String = "",
val userProfileId: String = "",
val isMatchingRequest: Boolean = true,
val isCompeteButtonEnabled: Boolean = false,
val reviewCursor: Cursor = Cursor(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class UserProfileContract {
val selectedSportProfileId: String = "",
val gameReview: ImmutableList<GameReview> = persistentListOf(),
val gameReviewResult: GameReviewResult = GameReviewResult(),
val userId: String = "",
val userProfileId: String = "",
val isMatchingRequest: Boolean = true,
val userProfileCursor: Cursor = Cursor(),
val isDialogVisible: Boolean = false,
Expand All @@ -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
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class UserProfileViewModel @Inject constructor(

private val userInfo = savedStateHandle.toRoute<UserProfile>()

private val userId = userInfo.userId
private val userProfileId = userInfo.userProfileId
private val sportCode = userInfo.sportCode

private val _uiState = MutableStateFlow(UserProfileContract.State())
Expand All @@ -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 ->
Expand All @@ -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 ->
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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(
Expand Down
Loading