Skip to content

Commit

Permalink
[TNT-000] fix: 회원가입 시 FCM 토큰을 서버에 저장하도록 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
hoyahozz committed Feb 18, 2025
1 parent 18c6a29 commit bddf069
Show file tree
Hide file tree
Showing 17 changed files with 40 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,23 @@ sealed interface Route {
val authId: String,
val authType: String,
val email: String,
val messagingToken: String,
) : Route

@Serializable
data class TrainerSignUp(
val authId: String,
val authType: String,
val email: String,
val messagingToken: String,
) : Route

@Serializable
data class TraineeSignUp(
val authId: String,
val authType: String,
val email: String,
val messagingToken: String,
) : Route

@Serializable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,18 @@ internal class SignUpRepositoryImpl @Inject constructor(
socialId: String,
socialType: String,
email: String,
messagingToken: String,
): SignUpResult {
val profileImagePart = profileImage?.let {
val requestFile = it.asRequestBody("image/*".toMediaTypeOrNull())
MultipartBody.Part.createFormData("profileImage", it.name, requestFile)
}

// TODO FCM token
val signUpRequest = user.toSignUpRequest(
socialId = socialId,
socialType = socialType,
email = email,
fcmToken = "EMPTY",
fcmToken = messagingToken,
)
val requestBody = signUpRequest.toRequestBody()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ interface SignUpRepository {
socialId: String,
socialType: String,
email: String,
messagingToken: String,
): SignUpResult
}
5 changes: 4 additions & 1 deletion feature/login/src/main/java/co/kr/tnt/login/LoginContract.kt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ internal class LoginContract {
data class ShowToast(val message: String) : LoginSideEffect
data class NavigateToWebView(val url: String) : LoginSideEffect
data class NavigateToHome(val userType: UserType) : LoginSideEffect
data class NavigateToSignup(val loginResult: LoginResult) : LoginSideEffect
data class NavigateToSignup(
val loginResult: LoginResult,
val messagingToken: String,
) : LoginSideEffect
}
}
4 changes: 2 additions & 2 deletions feature/login/src/main/java/co/kr/tnt/login/LoginScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ internal fun LoginRoute(
viewModel: LoginViewModel = hiltViewModel(),
navigateToWebView: (url: String) -> Unit,
navigateToHome: (UserType) -> Unit,
navigateToSignup: (LoginResult) -> Unit,
navigateToSignup: (loginResult: LoginResult, messagingToken: String) -> Unit,
) {
val context = LocalContext.current
val snackbar = LocalSnackbar.current
Expand Down Expand Up @@ -137,7 +137,7 @@ internal fun LoginRoute(

is LoginSideEffect.NavigateToSignup -> {
showBottomSheet = false
navigateToSignup(effect.loginResult)
navigateToSignup(effect.loginResult, effect.messagingToken)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ internal class LoginViewModel @Inject constructor(

private fun navigateToSignup() {
loginResult?.let { loginResult ->
sendEffect(LoginSideEffect.NavigateToSignup(loginResult))
sendEffect(LoginSideEffect.NavigateToSignup(loginResult, messagingToken))
this@LoginViewModel.loginResult = null
} ?: run {
sendEffect(LoginSideEffect.ShowToast("로그인에 실패하였습니다. 다시 시도해주세요."))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ fun NavController.navigateToLogin(
fun NavGraphBuilder.loginScreen(
navigateToWebView: (url: String) -> Unit,
navigateToHome: (UserType) -> Unit,
navigateToSignup: (LoginResult) -> Unit,
navigateToSignup: (loginResult: LoginResult, messagingToken: String) -> Unit,
) {
composable<Route.Login> {
LoginRoute(
Expand Down
3 changes: 2 additions & 1 deletion feature/main/src/main/java/co/kr/tnt/main/ui/TnTNavHost.kt
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,12 @@ fun TnTNavHost(
UserType.TRAINEE -> navController.navigateToTraineeMain(clearBackStack = true)
}
},
navigateToSignup = { loginResult ->
navigateToSignup = { loginResult, messagingToken ->
navController.navigateToRoleSelection(
authId = loginResult.authId,
authType = loginResult.authType.name,
email = loginResult.email,
messagingToken = messagingToken,
)
},
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,27 @@ fun NavController.navigateToRoleSelection(
authId: String,
authType: String,
email: String,
messagingToken: String,
navOptions: NavOptionsBuilder.() -> Unit = {},
) = navigate(
route = Route.RoleSelection(
authId = authId,
authType = authType,
email = email,
messagingToken = messagingToken,
),
builder = navOptions,
)

fun NavGraphBuilder.roleSelectionScreen(
navigateToTraineeSignUp: (authId: String, authType: String, email: String) -> Unit,
navigateToTrainerSignUp: (authId: String, authType: String, email: String) -> Unit,
navigateToTraineeSignUp: (authId: String, authType: String, email: String, messagingToken: String) -> Unit,
navigateToTrainerSignUp: (authId: String, authType: String, email: String, messagingToken: String) -> Unit,
) {
composable<Route.RoleSelection> { navBackstackEntry ->
navBackstackEntry.toRoute<Route.RoleSelection>().apply {
RoleSelectionRoute(
navigateToTraineeSignUp = { navigateToTraineeSignUp(authId, authType, email) },
navigateToTrainerSignUp = { navigateToTrainerSignUp(authId, authType, email) },
navigateToTraineeSignUp = { navigateToTraineeSignUp(authId, authType, email, messagingToken) },
navigateToTrainerSignUp = { navigateToTrainerSignUp(authId, authType, email, messagingToken) },
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ internal class TraineeSignUpContract {
val id: String,
val email: String,
val authType: String,
val messagingToken: String,
) : TraineeSignUpUiEvent
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ internal fun TraineeSignUpRoute(
authId: String,
authType: String,
email: String,
messagingToken: String,
navigateToPrevious: () -> Unit,
navigateToConnect: () -> Unit,
viewModel: TraineeSignUpViewModel = hiltViewModel(),
Expand Down Expand Up @@ -46,6 +47,7 @@ internal fun TraineeSignUpRoute(
id = authId,
email = email,
authType = authType,
messagingToken = messagingToken,
),
)
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ internal class TraineeSignUpViewModel @Inject constructor(
id = event.id,
email = event.email,
authType = event.authType,
messagingToken = event.messagingToken,
)
}
}
Expand All @@ -53,6 +54,7 @@ internal class TraineeSignUpViewModel @Inject constructor(
id: String,
email: String,
authType: String,
messagingToken: String,
) {
viewModelScope.launch {
updateState { copy(isLoading = true) }
Expand Down Expand Up @@ -83,6 +85,7 @@ internal class TraineeSignUpViewModel @Inject constructor(
socialId = id,
socialType = authType,
email = email,
messagingToken = messagingToken,
)
}.onSuccess {
sendEffect(TraineeSignUpEffect.NavigateToConnect)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@ fun NavController.navigateToTraineeSignUp(
authId: String,
authType: String,
email: String,
messagingToken: String,
navOptions: NavOptionsBuilder.() -> Unit = {},
) = navigate(
route = Route.TraineeSignUp(
authId = authId,
authType = authType,
email = email,
messagingToken = messagingToken,
),
builder = navOptions,
)
Expand All @@ -32,6 +34,7 @@ fun NavGraphBuilder.traineeSignUpScreen(
authId = authId,
authType = authType,
email = email,
messagingToken = messagingToken,
navigateToPrevious = navigateToPrevious,
navigateToConnect = navigateToConnect,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ internal class TrainerSignUpContract {
val id: String,
val email: String,
val authType: String,
val messagingToken: String,
) : TrainerSignUpUiEvent
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ internal fun TrainerSignUpRoute(
authId: String,
authType: String,
email: String,
messagingToken: String,
navigateToPrevious: () -> Unit,
navigateToInvite: (ScreenMode) -> Unit,
viewModel: TrainerSignUpViewModel = hiltViewModel(),
Expand All @@ -39,6 +40,7 @@ internal fun TrainerSignUpRoute(
id = authId,
email = email,
authType = authType,
messagingToken = messagingToken,
),
)
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ internal class TrainerSignUpViewModel @Inject constructor(
id = event.id,
email = event.email,
authType = event.authType,
messagingToken = event.messagingToken,
)
}
}
Expand All @@ -49,6 +50,7 @@ internal class TrainerSignUpViewModel @Inject constructor(
id: String,
email: String,
authType: String,
messagingToken: String,
) {
viewModelScope.launch(Dispatchers.IO) {
updateState { copy(isLoading = true) }
Expand All @@ -73,6 +75,7 @@ internal class TrainerSignUpViewModel @Inject constructor(
socialId = id,
socialType = authType,
email = email,
messagingToken = messagingToken,
)
}.onSuccess {
sendEffect(TrainerSignUpEffect.NavigateToConnect)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ fun NavController.navigateToTrainerSignUp(
authId: String,
authType: String,
email: String,
messagingToken: String,
navOptions: NavOptionsBuilder.() -> Unit = {},
) = navigate(
route = Route.TrainerSignUp(
authId = authId,
authType = authType,
email = email,
messagingToken = messagingToken,
),
builder = navOptions,
)
Expand All @@ -33,6 +35,7 @@ fun NavGraphBuilder.trainerSignUpScreen(
authId = authId,
authType = authType,
email = email,
messagingToken = messagingToken,
navigateToPrevious = navigateToPrevious,
navigateToInvite = navigateToInvite,
)
Expand Down

0 comments on commit bddf069

Please sign in to comment.