diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-07-30 01:13:56 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2023-11-11 13:20:09 -0600 |
commit | c4daf6ba593a57fb25e1f4705b303350bf8a3fa1 (patch) | |
tree | 880a995eca7b8f34e22b594c0fdda75531e13a0e /anastasis/src/main/java/net/taler/anastasis/reducers/ReducerManager.kt | |
parent | a31ca9fa74e07bc06af156c83592471ac3964121 (diff) | |
download | taler-android-c4daf6ba593a57fb25e1f4705b303350bf8a3fa1.tar.gz taler-android-c4daf6ba593a57fb25e1f4705b303350bf8a3fa1.tar.bz2 taler-android-c4daf6ba593a57fb25e1f4705b303350bf8a3fa1.zip |
Policy editing + too many things to list
Signed-off-by: Iván Ávalos <avalos@disroot.org>
Diffstat (limited to 'anastasis/src/main/java/net/taler/anastasis/reducers/ReducerManager.kt')
-rw-r--r-- | anastasis/src/main/java/net/taler/anastasis/reducers/ReducerManager.kt | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/anastasis/src/main/java/net/taler/anastasis/reducers/ReducerManager.kt b/anastasis/src/main/java/net/taler/anastasis/reducers/ReducerManager.kt index 0aed98f..fd527f6 100644 --- a/anastasis/src/main/java/net/taler/anastasis/reducers/ReducerManager.kt +++ b/anastasis/src/main/java/net/taler/anastasis/reducers/ReducerManager.kt @@ -24,11 +24,14 @@ import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch +import kotlinx.serialization.json.Json import net.taler.anastasis.Utils +import net.taler.anastasis.Utils.encodeToNativeJson import net.taler.anastasis.backend.AnastasisReducerApi import net.taler.anastasis.models.AuthenticationProviderStatus import net.taler.anastasis.models.ContinentInfo import net.taler.anastasis.models.CountryInfo +import net.taler.anastasis.models.Policy import net.taler.anastasis.models.ReducerArgs import net.taler.anastasis.models.ReducerState import org.json.JSONObject @@ -64,6 +67,15 @@ class ReducerManager( } } + fun next() = scope.launch { + state.value?.let { initialState -> + api.reduceAction(initialState, "next") + .onSuccess { newState -> + state.value = newState + } + } + } + fun selectContinent(continent: ContinentInfo) = scope.launch { state.value?.let { initialState -> api.reduceAction(initialState, "select_continent") { @@ -147,10 +159,41 @@ class ReducerManager( fun deleteAuthentication(index: Int) = scope.launch { state.value?.let { initialState -> api.reduceAction(initialState, "delete_authentication") { - put("index", index) + put("authentication_method", index) + }.onSuccess { newState -> + state.value = newState + } + } + } + + fun addPolicy(policy: Policy) = scope.launch { + state.value?.let { initialState -> + api.reduceAction(initialState, "add_policy") { + put("policy", Json.encodeToNativeJson(policy.methods)) + }.onSuccess { newState -> + state.value = newState + }.onError { Log.d("ReducerManager", "$it") } + } + } + + fun updatePolicy(index: Int, policy: Policy) = scope.launch { + state.value?.let { initialState -> + api.reduceAction(initialState, "update_policy") { + put("policy_index", index) + put("policy", Json.encodeToNativeJson(policy.methods)) }.onSuccess { newState -> state.value = newState } } } + + fun deletePolicy(index: Int) = scope.launch { + state.value?.let { initialState -> + api.reduceAction(initialState, "delete_policy") { + put("policy_index", index) + }.onSuccess { newState -> + state.value = newState + } + } + } }
\ No newline at end of file |