Page MenuHomePhorge

D14279.1768732798.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D14279.1768732798.diff

diff --git a/services/identity/src/client_service.rs b/services/identity/src/client_service.rs
--- a/services/identity/src/client_service.rs
+++ b/services/identity/src/client_service.rs
@@ -1288,6 +1288,7 @@
platform_metadata,
login_time,
device_list_payload,
+ None,
)
.await?;
diff --git a/services/identity/src/database.rs b/services/identity/src/database.rs
--- a/services/identity/src/database.rs
+++ b/services/identity/src/database.rs
@@ -184,6 +184,7 @@
platform_details,
access_token_creation_time,
initial_device_list,
+ None,
)
.await?;
} else {
@@ -245,6 +246,7 @@
platform_metadata,
access_token_creation_time,
initial_device_list,
+ None,
)
.await?;
} else {
diff --git a/services/identity/src/database/device_list.rs b/services/identity/src/database/device_list.rs
--- a/services/identity/src/database/device_list.rs
+++ b/services/identity/src/database/device_list.rs
@@ -9,6 +9,7 @@
DeleteRequest, Put, TransactWriteItem, Update, WriteRequest,
},
},
+ backup::database::BackupItem,
database::{
batch_operations::ExponentialBackoffConfig, AttributeExtractor,
AttributeMap, DBItemAttributeError, DBItemError, DynamoDBError,
@@ -1324,6 +1325,7 @@
platform_metadata: PlatformMetadata,
login_time: DateTime<Utc>,
singleton_device_list: DeviceListUpdate,
+ backup_item: Option<BackupItem>,
) -> Result<(), Error> {
let user_id: String = user_id.into();
self
@@ -1368,9 +1370,15 @@
let put_device_operation =
TransactWriteItem::builder().put(put_device).build();
- let update_info =
+ let mut update_info =
UpdateOperationInfo::primary_device_issued(singleton_device_list)
.with_ddb_operation(put_device_operation);
+
+ if let Some(backup_item) = backup_item {
+ let operation = prepare_user_keys_ddb_operation(backup_item);
+ update_info = update_info.with_ddb_operation(operation);
+ }
+
Ok(update_info)
})
.await?;
@@ -1995,6 +2003,20 @@
}
}
+fn prepare_user_keys_ddb_operation(
+ backup_item: BackupItem,
+) -> TransactWriteItem {
+ use comm_lib::backup::database::backup_table;
+
+ let put_user_keys = Put::builder()
+ .table_name(backup_table::TABLE_NAME)
+ .set_item(Some(backup_item.into()))
+ .build()
+ .expect("table_name or item not set in Put builder");
+
+ TransactWriteItem::builder().put(put_user_keys).build()
+}
+
// Helper module for "migration" code into new device list schema.
// We can get rid of this when primary device takes over the responsibility
// of managing the device list.

File Metadata

Mime Type
text/plain
Expires
Sun, Jan 18, 10:39 AM (52 m, 55 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5951109
Default Alt Text
D14279.1768732798.diff (2 KB)

Event Timeline