Page MenuHomePhorge

D14523.1768810239.diff
No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None

D14523.1768810239.diff

diff --git a/lib/types/sqlite-types.js b/lib/types/sqlite-types.js
--- a/lib/types/sqlite-types.js
+++ b/lib/types/sqlite-types.js
@@ -1,7 +1,9 @@
// @flow
+import type { IdentityAuthResult } from './identity-service-types.js';
import type { ClientDBMessageInfo } from './message-types.js';
import type { StoreOperations } from './store-ops-types.js';
+import type { QRAuthBackupData } from './tunnelbroker/qr-code-auth-message-types.js';
import type { ClientDBDMOperation } from '../ops/dm-operations-store-ops.js';
export const outboundP2PMessageStatuses = Object.freeze({
@@ -86,4 +88,10 @@
operations: StoreOperations,
userID?: ?string,
) => Promise<void>,
+
+ // backup
+ +restoreUserData: (
+ qrAuthBackupData: QRAuthBackupData,
+ identityAuthResult: IdentityAuthResult,
+ ) => Promise<void>,
};
diff --git a/lib/utils/__mocks__/config.js b/lib/utils/__mocks__/config.js
--- a/lib/utils/__mocks__/config.js
+++ b/lib/utils/__mocks__/config.js
@@ -47,6 +47,7 @@
searchMessages: jest.fn(),
fetchMessages: jest.fn(),
fetchDMOperationsByType: jest.fn(),
+ restoreUserData: jest.fn(),
},
encryptedNotifUtilsAPI: {
generateAESKey: jest.fn(),
diff --git a/native/database/sqlite-api.js b/native/database/sqlite-api.js
--- a/native/database/sqlite-api.js
+++ b/native/database/sqlite-api.js
@@ -4,9 +4,11 @@
import { convertStoreOperationsToClientDBStoreOperations } from 'lib/shared/redux/client-db-utils.js';
import type { SQLiteAPI } from 'lib/types/sqlite-types.js';
import type { StoreOperations } from 'lib/types/store-ops-types';
+import type { QRAuthBackupData } from 'lib/types/tunnelbroker/qr-code-auth-message-types.js';
import { values } from 'lib/utils/objects.js';
import { commCoreModule } from '../native-modules.js';
+import { storeVersion } from '../redux/persist-constants.js';
import { isTaskCancelledError } from '../utils/error-handling.js';
const sqliteAPI: SQLiteAPI = {
@@ -61,6 +63,17 @@
commCoreModule.terminate();
}
},
+
+ //backup
+ async restoreUserData(qrAuthBackupData: QRAuthBackupData): Promise<void> {
+ const { backupID, backupDataKey, backupLogDataKey } = qrAuthBackupData;
+ return commCoreModule.restoreBackupData(
+ backupID,
+ backupDataKey,
+ backupLogDataKey,
+ storeVersion.toString(),
+ );
+ },
};
export { sqliteAPI };
diff --git a/web/database/sqlite-api.js b/web/database/sqlite-api.js
--- a/web/database/sqlite-api.js
+++ b/web/database/sqlite-api.js
@@ -2,6 +2,7 @@
import type { ClientDBDMOperation } from 'lib/ops/dm-operations-store-ops.js';
import { convertStoreOperationsToClientDBStoreOperations } from 'lib/shared/redux/client-db-utils.js';
+import type { IdentityAuthResult } from 'lib/types/identity-service-types.js';
import type { ClientDBMessageInfo } from 'lib/types/message-types.js';
import type {
SQLiteAPI,
@@ -9,6 +10,8 @@
OutboundP2PMessage,
} from 'lib/types/sqlite-types.js';
import type { StoreOperations } from 'lib/types/store-ops-types.js';
+import type { QRAuthBackupData } from 'lib/types/tunnelbroker/qr-code-auth-message-types.js';
+import { getContentSigningKey } from 'lib/utils/crypto-utils.js';
import { entries, values } from 'lib/utils/objects.js';
import { getCommSharedWorker } from '../shared-worker/shared-worker-provider.js';
@@ -210,6 +213,30 @@
}
}
},
+
+ //backup
+ async restoreUserData(
+ qrAuthBackupData: QRAuthBackupData,
+ identityAuthResult: IdentityAuthResult,
+ ): Promise<void> {
+ const { backupID, backupDataKey, backupLogDataKey } = qrAuthBackupData;
+ const { userID, accessToken } = identityAuthResult;
+ const [deviceID, sharedWorker] = await Promise.all([
+ getContentSigningKey(),
+ getCommSharedWorker(),
+ ]);
+ await sharedWorker.schedule({
+ type: workerRequestMessageTypes.BACKUP_RESTORE,
+ authMetadata: {
+ deviceID,
+ userID,
+ accessToken,
+ },
+ backupID,
+ backupDataKey,
+ backupLogDataKey,
+ });
+ },
};
export { sqliteAPI };

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 19, 8:10 AM (20 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5955332
Default Alt Text
D14523.1768810239.diff (4 KB)

Event Timeline