aboutsummaryrefslogtreecommitdiff
path: root/packages/anastasis-core/src/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/anastasis-core/src/index.ts')
-rw-r--r--packages/anastasis-core/src/index.ts14
1 files changed, 14 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),