From be95b84d525d0f3dcefead9d338190f92cc9f2b0 Mon Sep 17 00:00:00 2001
From: Houkime <>
Date: Fri, 7 Jul 2023 13:24:05 +0000
Subject: [PATCH] feature(backups): expose restore strategies to the API

---
 selfprivacy_api/graphql/mutations/backup_mutations.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/selfprivacy_api/graphql/mutations/backup_mutations.py b/selfprivacy_api/graphql/mutations/backup_mutations.py
index adc3873..5c8163c 100644
--- a/selfprivacy_api/graphql/mutations/backup_mutations.py
+++ b/selfprivacy_api/graphql/mutations/backup_mutations.py
@@ -13,6 +13,7 @@ from selfprivacy_api.graphql.queries.backup import BackupConfiguration
 from selfprivacy_api.graphql.queries.backup import Backup
 from selfprivacy_api.graphql.queries.providers import BackupProvider
 from selfprivacy_api.graphql.common_types.jobs import job_to_api_job
+from selfprivacy_api.graphql.common_types.backup import RestoreStrategy
 
 from selfprivacy_api.backup import Backups
 from selfprivacy_api.services import get_all_services, get_service_by_id
@@ -115,7 +116,11 @@ class BackupMutations:
         )
 
     @strawberry.mutation(permission_classes=[IsAuthenticated])
-    def restore_backup(self, snapshot_id: str) -> GenericJobMutationReturn:
+    def restore_backup(
+        self,
+        snapshot_id: str,
+        strategy: RestoreStrategy = RestoreStrategy.DOWNLOAD_VERIFY_OVERWRITE,
+    ) -> GenericJobMutationReturn:
         """Restore backup"""
         snap = Backups.get_snapshot_by_id(snapshot_id)
         if snap is None:
@@ -145,7 +150,7 @@ class BackupMutations:
                 job=None,
             )
 
-        restore_snapshot(snap)
+        restore_snapshot(snap, strategy)
 
         return GenericJobMutationReturn(
             success=True,