admin viewmodel and fragment
This commit is contained in:
		
							parent
							
								
									3fe72d546f
								
							
						
					
					
						commit
						d80a99ade0
					
				| @ -11,5 +11,5 @@ public class BlockUseCase ( | |||||||
|     private fun getUserFromStorage() : UserDto? { |     private fun getUserFromStorage() : UserDto? { | ||||||
|         return authStorageDataSource.userInfo |         return authStorageDataSource.userInfo | ||||||
|     } |     } | ||||||
|     suspend operator fun invoke(value : String) = repo.block(getUserFromStorage()?.login!!) |     suspend operator fun invoke() = repo.block(getUserFromStorage()?.login!!) | ||||||
| } | } | ||||||
|  | |||||||
| @ -11,5 +11,5 @@ public class UnBlockUseCase ( | |||||||
|     private fun getUserFromStorage() : UserDto? { |     private fun getUserFromStorage() : UserDto? { | ||||||
|         return authStorageDataSource.userInfo |         return authStorageDataSource.userInfo | ||||||
|     } |     } | ||||||
|     suspend operator fun invoke(value : String) = repo.unblock(getUserFromStorage()?.login!!) |     suspend operator fun invoke() = repo.unblock(getUserFromStorage()?.login!!) | ||||||
| } | } | ||||||
|  | |||||||
| @ -16,7 +16,6 @@ import ru.myitschool.work.utils.collectWithLifecycle | |||||||
| class AdminFragment : Fragment(R.layout.fragment_admin) { | class AdminFragment : Fragment(R.layout.fragment_admin) { | ||||||
|     private var _viewBinding: FragmentAdminBinding? = null |     private var _viewBinding: FragmentAdminBinding? = null | ||||||
|     private val viewBinding: FragmentAdminBinding get() = _viewBinding!! |     private val viewBinding: FragmentAdminBinding get() = _viewBinding!! | ||||||
| 
 |  | ||||||
|     private val viewModel by viewModels<AdminViewModel> { AdminViewModel.Factory } |     private val viewModel by viewModels<AdminViewModel> { AdminViewModel.Factory } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -24,23 +23,23 @@ class AdminFragment : Fragment(R.layout.fragment_admin) { | |||||||
|         _viewBinding = FragmentAdminBinding.bind(view) |         _viewBinding = FragmentAdminBinding.bind(view) | ||||||
|         super.onViewCreated(view, savedInstanceState) |         super.onViewCreated(view, savedInstanceState) | ||||||
| 
 | 
 | ||||||
| 
 | // | ||||||
|     /*viewModel.state.collectWithLifecycle(this) { state -> | //    viewModel.state.collectWithLifecycle(this) { state -> | ||||||
| 
 | // | ||||||
|         viewBinding.error.visibility = if (state is AdminViewModel.State.Error) View.VISIBLE else View.GONE | //        viewBinding.error.visibility = if (state is AdminViewModel.State.Error) View.VISIBLE else View.GONE | ||||||
| 
 | // | ||||||
| 
 | // | ||||||
|         when(state) { | //        when(state) { | ||||||
|             is AdminViewModel.State.Loading -> Unit | //            is AdminViewModel.State.Loading -> Unit | ||||||
|             is AdminViewModel.State.GoToInfo -> { | //            is AdminViewModel.State.GoToInfo -> { | ||||||
|                 findNavController().navigate() | //                findNavController().navigate() | ||||||
|             } | //            } | ||||||
|             is ProfileViewModel.State.Error -> { | //            is ProfileViewModel.State.Error -> { | ||||||
|                 viewBinding.errorText.text = state.text | //                viewBinding.errorText.text = state.text | ||||||
|             } | //            } | ||||||
|         } | //        } | ||||||
| 
 | // | ||||||
|     }*/ | //    } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| override fun onDestroyView() { | override fun onDestroyView() { | ||||||
|  | |||||||
| @ -10,12 +10,16 @@ import kotlinx.coroutines.launch | |||||||
| import ru.myitschool.work.data.auth.AuthStorageDataSource | import ru.myitschool.work.data.auth.AuthStorageDataSource | ||||||
| import ru.myitschool.work.data.user.UserNetworkDataSource | import ru.myitschool.work.data.user.UserNetworkDataSource | ||||||
| import ru.myitschool.work.data.user.UserRepoImpl | import ru.myitschool.work.data.user.UserRepoImpl | ||||||
|  | import ru.myitschool.work.domain.user.BlockUseCase | ||||||
| import ru.myitschool.work.domain.user.EntranceEntity | import ru.myitschool.work.domain.user.EntranceEntity | ||||||
| import ru.myitschool.work.domain.user.GetUserUseCase | import ru.myitschool.work.domain.user.GetUserUseCase | ||||||
|  | import ru.myitschool.work.domain.user.UnBlockUseCase | ||||||
| import ru.myitschool.work.domain.user.UserEntity | import ru.myitschool.work.domain.user.UserEntity | ||||||
| 
 | 
 | ||||||
| class AdminViewModel( | class AdminViewModel( | ||||||
|     private val getUserUseCase: GetUserUseCase |     private val getUserUseCase: GetUserUseCase, | ||||||
|  |     private val blockUseCase: BlockUseCase, | ||||||
|  |     private val unBlockUseCase: UnBlockUseCase | ||||||
| ) : ViewModel() { | ) : ViewModel() { | ||||||
|     private val _state = MutableStateFlow<State>(State.Loading) |     private val _state = MutableStateFlow<State>(State.Loading) | ||||||
|     val state = _state.asStateFlow() |     val state = _state.asStateFlow() | ||||||
| @ -52,11 +56,33 @@ class AdminViewModel( | |||||||
|                     } |                     } | ||||||
|                 ) |                 ) | ||||||
|             ) |             ) | ||||||
|             //_state.emit(State.Error("о нет ошибка ошибка помогите")) |             _state.emit(State.Error("о нет ошибка ошибка помогите")) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     suspend fun blockUser() { | ||||||
|  |         blockUseCase.invoke().fold( | ||||||
|  |             onSuccess = { data -> | ||||||
|  |                 Log.d("uraa", "успех успех ${data.toString()}") | ||||||
|  |             }, | ||||||
|  |             onFailure = { error -> | ||||||
|  |                 Log.d("kaput", error.message.toString()) | ||||||
|  |                 State.Error(error.message.toString()) | ||||||
|  |             } | ||||||
|  |         ) | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|  |     suspend fun unblockUser() { | ||||||
|  |         unBlockUseCase.invoke().fold( | ||||||
|  |             onSuccess = { data -> | ||||||
|  |                 Log.d("uraa", "успех успех ${data.toString()}") | ||||||
|  |             }, | ||||||
|  |             onFailure = { error -> | ||||||
|  |                 Log.d("kaput", error.message.toString()) | ||||||
|  |                 State.Error(error.message.toString()) | ||||||
|  |             } | ||||||
|  |         ) | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     sealed interface State { |     sealed interface State { | ||||||
|         data object Loading: State |         data object Loading: State | ||||||
| @ -78,6 +104,16 @@ class AdminViewModel( | |||||||
|                             userNetworkDataSource = UserNetworkDataSource() |                             userNetworkDataSource = UserNetworkDataSource() | ||||||
|                         ), |                         ), | ||||||
|                         authStorageDataSource = AuthStorageDataSource |                         authStorageDataSource = AuthStorageDataSource | ||||||
|  |                     ), | ||||||
|  |                     blockUseCase = BlockUseCase(repo = UserRepoImpl( | ||||||
|  |                         userNetworkDataSource = UserNetworkDataSource() | ||||||
|  |                     ), | ||||||
|  |                         authStorageDataSource = AuthStorageDataSource | ||||||
|  |                     ), | ||||||
|  |                     unBlockUseCase = UnBlockUseCase(repo = UserRepoImpl( | ||||||
|  |                         userNetworkDataSource = UserNetworkDataSource() | ||||||
|  |                     ), | ||||||
|  |                         authStorageDataSource = AuthStorageDataSource | ||||||
|                     ) |                     ) | ||||||
|                 ) as T |                 ) as T | ||||||
|             } |             } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user