mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-17 07:41:23 +01:00
refactor error handling in copy_upgraded_account_data_tag
The new error handling logic is semantically different from the old, but I don't know of any cases you could hit in practice where it would matter.
This commit is contained in:
parent
51dd75c3dc
commit
18360cd3f9
1 changed files with 17 additions and 15 deletions
|
|
@ -184,21 +184,23 @@ impl Service {
|
||||||
from_room_id: &RoomId,
|
from_room_id: &RoomId,
|
||||||
to_room_id: &RoomId,
|
to_room_id: &RoomId,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let event_kind = RoomAccountDataEventType::Tag;
|
let Some(event) = services().account_data.get(
|
||||||
if let Some(tag_event) = services()
|
Some(from_room_id),
|
||||||
.account_data
|
user_id,
|
||||||
.get(Some(from_room_id), user_id, event_kind.clone())?
|
RoomAccountDataEventType::Tag,
|
||||||
.map(|event| {
|
)?
|
||||||
serde_json::from_str(event.get()).map_err(|error| {
|
else {
|
||||||
warn!(%error, %event_kind, "Invalid account data event");
|
return Ok(());
|
||||||
Error::BadDatabase("Invalid account data event.")
|
};
|
||||||
})
|
let event = serde_json::from_str::<serde_json::Value>(event.get())
|
||||||
})
|
.expect("RawValue -> Value should always succeed");
|
||||||
{
|
if let Err(error) = services().account_data.update(
|
||||||
services()
|
Some(to_room_id),
|
||||||
.account_data
|
user_id,
|
||||||
.update(Some(to_room_id), user_id, event_kind, &tag_event?)
|
RoomAccountDataEventType::Tag,
|
||||||
.ok();
|
&event,
|
||||||
|
) {
|
||||||
|
warn!(%error, "error writing m.tag account data to upgraded room");
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue