diff --git a/app/src/main/java/org/sopt/dosopttemplate/data/service/AuthService.kt b/app/src/main/java/org/sopt/dosopttemplate/data/service/AuthService.kt index 9f2f7cd..4eecdd0 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/data/service/AuthService.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/data/service/AuthService.kt @@ -18,5 +18,5 @@ interface AuthService { @POST("api/v1/members/sign-in") suspend fun login( @Body request: RequestLoginDto, - ): Call + ): ResponseLoginDto } diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/auth/LoginActivity.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/auth/LoginActivity.kt index 3328716..d4b4567 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/auth/LoginActivity.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/auth/LoginActivity.kt @@ -8,7 +8,6 @@ import android.view.MotionEvent import android.view.View import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import org.sopt.dosopttemplate.R import org.sopt.dosopttemplate.data.User import org.sopt.dosopttemplate.databinding.ActivityLoginBinding import org.sopt.dosopttemplate.di.UserSharedPreferences @@ -70,7 +69,32 @@ class LoginActivity : AppCompatActivity() { } is UiState.Failure -> { - //showShortSnackBar(binding.root, "로그인 성공, 유저 아이디 : ${loginViewModel.}") + showShortSnackBar(binding.root, "실패") + } + + is UiState.Loading -> { + showShortSnackBar(binding.root, "로딩중") + } + } + } + + loginViewModel.getLoginInfo.observe( + this, + ) { uiState -> + when (uiState) { + is UiState.Success -> { + if (binding.cbLoginAutologin.isChecked) { + signUpUser?.let { + loginViewModel.saveUserForAutoLogin(this, it) + } + } + + val userId = uiState.data?.userId + showShortSnackBar(binding.root, "로그인 성공, 유저 아이디 : $userId") + } + + is UiState.Failure -> { + showShortSnackBar(binding.root, "실패") } is UiState.Loading -> { diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/auth/LoginViewModel.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/auth/LoginViewModel.kt index 47f6ba3..88a19e5 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/auth/LoginViewModel.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/auth/LoginViewModel.kt @@ -9,18 +9,18 @@ import kotlinx.coroutines.launch import org.sopt.dosopttemplate.data.User import org.sopt.dosopttemplate.data.remote.ServicePool import org.sopt.dosopttemplate.data.remote.request.RequestLoginDto -import org.sopt.dosopttemplate.data.remote.response.ResponseLoginDto import org.sopt.dosopttemplate.di.UserSharedPreferences import org.sopt.dosopttemplate.util.UiState -import retrofit2.Call class LoginViewModel : ViewModel() { private val _loginResult = MutableLiveData>() val loginResult: LiveData> get() = _loginResult + private val _getLoginInfo = MutableLiveData>() + val getLoginInfo: LiveData> get() = _getLoginInfo + fun loginUser(inputId: String, inputPw: String) = viewModelScope.launch { _loginResult.value = UiState.Loading - lateinit var getUserInfo: Call runCatching { ServicePool.authService.login( @@ -28,11 +28,11 @@ class LoginViewModel : ViewModel() { ) }.onSuccess { // getUserInfo = it + _loginResult.value = UiState.Success(true) + _getLoginInfo.value = UiState.Success(User(it.id.toString(), it.username, it.nickname)) }.onFailure { _loginResult.value = UiState.Failure(it.message.toString()) } - - _loginResult.value = UiState.Success(true) } fun saveUserForAutoLogin(context: Context, signUpUser: User) {