Hotfix: account_data stored incorrectly in the database

This commit is contained in:
Sorunome 2020-06-26 18:46:54 +02:00
parent ab812e0da2
commit 163cbdb923
No known key found for this signature in database
GPG key ID: B19471D07FC9BE9C
2 changed files with 9 additions and 2 deletions

View file

@ -752,7 +752,7 @@ class Client {
await database.storeAccountData(
id,
newAccountData.type,
jsonEncode(newAccountData.toJson()),
jsonEncode(newAccountData.content),
);
}
accountData[newAccountData.type] = newAccountData;

View file

@ -176,7 +176,14 @@ class Database extends _$Database {
final newAccountData = <String, api.BasicEvent>{};
final rawAccountData = await getAllAccountData(clientId).get();
for (final d in rawAccountData) {
final content = sdk.Event.getMapFromPayload(d.content);
var content = sdk.Event.getMapFromPayload(d.content);
// there was a bug where it stored the entire event, not just the content
// in the databse. This is the temporary fix for those affected by the bug
if (content['content'] is Map && content['type'] is String) {
content = content['content'];
// and save
await storeAccountData(clientId, d.type, jsonEncode(content));
}
newAccountData[d.type] = api.BasicEvent(
content: content,
type: d.type,