aboutsummaryrefslogtreecommitdiff
path: root/packages/anastasis-core/src
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-11-04 21:47:51 +0100
committerFlorian Dold <florian@dold.me>2021-11-04 21:47:51 +0100
commit5a72e4ae3e9ebd77547ac5aa95cd0b54b39a34cd (patch)
tree4ee5ac89a8302ceaa00cea9aa12dc2d86102a768 /packages/anastasis-core/src
parent09d01a4bf16c3fcbe6020d8efd38cae34db53514 (diff)
downloadwallet-core-5a72e4ae3e9ebd77547ac5aa95cd0b54b39a34cd.tar.xz
anastasis-core: implement update_policy transition
Diffstat (limited to 'packages/anastasis-core/src')
-rw-r--r--packages/anastasis-core/src/index.ts14
-rw-r--r--packages/anastasis-core/src/reducer-types.ts5
2 files changed, 19 insertions, 0 deletions
diff --git a/packages/anastasis-core/src/index.ts b/packages/anastasis-core/src/index.ts
index 53364fc08..f2b8ff1d1 100644
--- a/packages/anastasis-core/src/index.ts
+++ b/packages/anastasis-core/src/index.ts
@@ -62,6 +62,7 @@ import {
codecForActionArgsChangeVersion,
ActionArgsChangeVersion,
TruthMetaData,
+ ActionArgsUpdatePolicy,
} from "./reducer-types.js";
import fetchPonyfill from "fetch-ponyfill";
import {
@@ -1038,6 +1039,18 @@ async function deletePolicy(
};
}
+async function updatePolicy(
+ state: ReducerStateBackup,
+ args: ActionArgsUpdatePolicy,
+): Promise<ReducerStateBackup> {
+ const policies = [...(state.policies ?? [])];
+ policies[args.policy_index] = { methods: args.policy };
+ return {
+ ...state,
+ policies,
+ };
+}
+
async function addPolicy(
state: ReducerStateBackup,
args: ActionArgsAddPolicy,
@@ -1230,6 +1243,7 @@ const backupTransitions: Record<
...transitionBackupJump("next", BackupStates.SecretEditing),
...transition("add_policy", codecForActionArgsAddPolicy(), addPolicy),
...transition("delete_policy", codecForAny(), deletePolicy),
+ ...transition("update_policy", codecForAny(), updatePolicy),
},
[BackupStates.SecretEditing]: {
...transitionBackupJump("back", BackupStates.PoliciesReviewing),
diff --git a/packages/anastasis-core/src/reducer-types.ts b/packages/anastasis-core/src/reducer-types.ts
index 56b27898e..e5b0c47a4 100644
--- a/packages/anastasis-core/src/reducer-types.ts
+++ b/packages/anastasis-core/src/reducer-types.ts
@@ -418,6 +418,11 @@ export interface ActionArgsChangeVersion {
version: number;
}
+export interface ActionArgsUpdatePolicy {
+ policy_index: number;
+ policy: PolicyMember[];
+}
+
export const codecForActionArgsChangeVersion = () =>
buildCodecForObject<ActionArgsChangeVersion>()
.property("provider_url", codecForString())