refactor: content parsing

This commit is contained in:
Christian Pauly 2020-11-30 15:00:10 +01:00
parent 323b203718
commit bec1761172
33 changed files with 71 additions and 45 deletions

View File

@ -24,7 +24,7 @@ import 'package:pedantic/pedantic.dart';
import '../famedlysdk.dart';
import '../matrix_api.dart';
import '../src/utils/run_in_root.dart';
import '../src/utils/logs.dart';
import '../matrix_api/utils/logs.dart';
import 'cross_signing.dart';
import 'key_manager.dart';
import 'key_verification_manager.dart';

View File

@ -26,7 +26,7 @@ import './utils/session_key.dart';
import '../famedlysdk.dart';
import '../matrix_api.dart';
import '../src/database/database.dart';
import '../src/utils/logs.dart';
import '../matrix_api/utils/logs.dart';
import '../src/utils/run_in_background.dart';
import '../src/utils/run_in_root.dart';

View File

@ -25,7 +25,7 @@ import 'package:olm/olm.dart' as olm;
import 'package:pedantic/pedantic.dart';
import '../encryption/utils/json_signature_check_extension.dart';
import '../src/utils/logs.dart';
import '../matrix_api/utils/logs.dart';
import 'encryption.dart';
import 'utils/olm_session.dart';
import '../src/utils/run_in_root.dart';

View File

@ -29,7 +29,7 @@ import 'package:password_hash/password_hash.dart';
import '../famedlysdk.dart';
import '../matrix_api.dart';
import '../src/database/database.dart';
import '../src/utils/logs.dart';
import '../matrix_api/utils/logs.dart';
import 'encryption.dart';
const CACHE_TYPES = <String>[

View File

@ -1,5 +1,5 @@
import 'package:canonical_json/canonical_json.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:olm/olm.dart' as olm;
extension JsonSignatureCheckExtension on Map<String, dynamic> {

View File

@ -25,7 +25,7 @@ import 'package:pedantic/pedantic.dart';
import '../../famedlysdk.dart';
import '../../matrix_api.dart';
import '../../src/utils/logs.dart';
import '../../matrix_api/utils/logs.dart';
import '../encryption.dart';
/*

View File

@ -19,7 +19,7 @@
import 'package:olm/olm.dart' as olm;
import '../../src/database/database.dart' show DbOlmSessions;
import '../../src/utils/logs.dart';
import '../../matrix_api/utils/logs.dart';
class OlmSession {
String identityKey;

View File

@ -21,7 +21,7 @@ import 'dart:convert';
import 'package:olm/olm.dart' as olm;
import '../../src/database/database.dart' show DbOutboundGroupSession;
import '../../src/utils/logs.dart';
import '../../matrix_api/utils/logs.dart';
class OutboundGroupSession {
/// The devices is a map from user id to device id to if the device is blocked.

View File

@ -22,7 +22,7 @@ import 'package:olm/olm.dart' as olm;
import '../../famedlysdk.dart';
import '../../src/database/database.dart' show DbInboundGroupSession;
import '../../src/utils/logs.dart';
import '../../matrix_api/utils/logs.dart';
class SessionKey {
Map<String, dynamic> content;

View File

@ -66,3 +66,4 @@ export 'matrix_api/model/upload_key_signatures_response.dart';
export 'matrix_api/model/user_search_result.dart';
export 'matrix_api/model/well_known_informations.dart';
export 'matrix_api/model/who_is_info.dart';
export 'matrix_api/model/events/tombstone_content.dart';

View File

@ -0,0 +1,23 @@
import 'package:famedlysdk/matrix_api/model/basic_event.dart';
import '../../utils/try_get_map_extension.dart';
extension TombstoneContentBasicEventExtension on BasicEvent {
TombstoneContent get parsedTombstoneContent =>
TombstoneContent.fromJson(content);
}
class TombstoneContent {
String body;
String replacementRoom;
TombstoneContent.fromJson(Map<String, dynamic> json)
: body = json.tryGet<String>('body', ''),
replacementRoom = json.tryGet<String>('replacement_room', '');
Map<String, dynamic> toJson() {
final data = <String, dynamic>{};
data['body'] = body;
data['replacement_room'] = replacementRoom;
return data;
}
}

View File

@ -0,0 +1,18 @@
import 'logs.dart';
extension TryGetMapExtension on Map<String, dynamic> {
T tryGet<T>(String key, [T fallbackValue]) {
final value = this[key];
if (value != null && !(value is T)) {
Logs.warning(
'Expected "${T.runtimeType}" in event content for the Key "$key" but got "${value.runtimeType}".');
return fallbackValue;
}
if (value == null && fallbackValue != null) {
Logs.warning(
'Required field in event content for the Key "$key" is null. Set to "$fallbackValue".');
return fallbackValue;
}
return value;
}
}

View File

@ -30,7 +30,7 @@ import 'room.dart';
import 'user.dart';
import 'utils/device_keys_list.dart';
import 'utils/event_update.dart';
import 'utils/logs.dart';
import '../matrix_api/utils/logs.dart';
import 'utils/matrix_file.dart';
import 'utils/room_update.dart';
import 'utils/to_device_event.dart';

View File

@ -8,7 +8,7 @@ import '../../famedlysdk.dart' as sdk;
import '../../matrix_api.dart' as api;
import '../client.dart';
import '../room.dart';
import '../utils/logs.dart';
import '../../matrix_api/utils/logs.dart';
part 'database.g.dart';

View File

@ -19,7 +19,6 @@
import 'dart:async';
import 'package:famedlysdk/matrix_api/model/marked_unread.dart';
import 'package:famedlysdk/src/utils/tombstone_content.dart';
import 'package:html_unescape/html_unescape.dart';
import 'package:matrix_file_e2ee/matrix_file_e2ee.dart';
@ -31,7 +30,7 @@ import 'event.dart';
import 'timeline.dart';
import 'user.dart';
import 'utils/event_update.dart';
import 'utils/logs.dart';
import '../matrix_api/utils/logs.dart';
import 'utils/markdown.dart';
import 'utils/matrix_file.dart';
import 'utils/matrix_localizations.dart';
@ -1699,6 +1698,6 @@ class Room {
/// Returns informations about how this room is
TombstoneContent get extinctInformations => isExtinct
? TombstoneContent.fromJson(getState(EventTypes.RoomTombstone).content)
? getState(EventTypes.RoomTombstone).parsedTombstoneContent
: null;
}

View File

@ -22,7 +22,7 @@ import '../matrix_api.dart';
import 'event.dart';
import 'room.dart';
import 'utils/event_update.dart';
import 'utils/logs.dart';
import '../matrix_api/utils/logs.dart';
import 'utils/room_update.dart';
typedef onTimelineUpdateCallback = void Function();

View File

@ -18,7 +18,7 @@
import '../../famedlysdk.dart';
import '../../matrix_api.dart';
import 'logs.dart';
import '../../matrix_api/utils/logs.dart';
enum EventUpdateType {
timeline,

View File

@ -18,7 +18,7 @@
import 'dart:async';
import 'logs.dart';
import '../../matrix_api/utils/logs.dart';
Future<T> runInRoot<T>(FutureOr<T> Function() fn) async {
return await Zone.root.run(() async {

View File

@ -1,15 +0,0 @@
class TombstoneContent {
String body;
String replacementRoom;
TombstoneContent.fromJson(Map<String, dynamic> json)
: body = json['body'],
replacementRoom = json['replacement_room'];
Map<String, dynamic> toJson() {
final data = <String, dynamic>{};
data['body'] = body;
data['replacement_room'] = replacementRoom;
return data;
}
}

View File

@ -23,7 +23,7 @@ import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/matrix_api.dart';
import 'package:famedlysdk/src/client.dart';
import 'package:famedlysdk/src/utils/event_update.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:famedlysdk/src/utils/room_update.dart';
import 'package:famedlysdk/src/utils/matrix_file.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -19,7 +19,7 @@
import 'dart:convert';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -19,7 +19,7 @@
import 'dart:convert';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -17,7 +17,7 @@
*/
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -17,7 +17,7 @@
*/
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -19,7 +19,7 @@
import 'dart:convert';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -18,7 +18,7 @@
import 'dart:convert';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -20,7 +20,7 @@ import 'dart:convert';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/encryption.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -18,7 +18,7 @@
import 'dart:convert';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;
import 'package:famedlysdk/encryption/utils/json_signature_check_extension.dart';

View File

@ -19,7 +19,7 @@
import 'dart:convert';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:famedlysdk/matrix_api.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -22,7 +22,7 @@ import 'dart:convert';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/matrix_api.dart';
import 'package:famedlysdk/encryption.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:encrypt/encrypt.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -23,7 +23,7 @@ import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/matrix_api.dart';
import 'package:famedlysdk/encryption.dart';
import 'package:famedlysdk/src/event.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import 'package:test/test.dart';
import 'package:olm/olm.dart' as olm;

View File

@ -1,6 +1,6 @@
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/matrix_api.dart';
import 'package:famedlysdk/src/utils/logs.dart';
import 'package:famedlysdk/matrix_api/utils/logs.dart';
import '../test/fake_database.dart';
import 'test_config.dart';
import 'package:olm/olm.dart' as olm;