refactor: content parsing
This commit is contained in:
parent
323b203718
commit
bec1761172
|
|
@ -24,7 +24,7 @@ import 'package:pedantic/pedantic.dart';
|
||||||
import '../famedlysdk.dart';
|
import '../famedlysdk.dart';
|
||||||
import '../matrix_api.dart';
|
import '../matrix_api.dart';
|
||||||
import '../src/utils/run_in_root.dart';
|
import '../src/utils/run_in_root.dart';
|
||||||
import '../src/utils/logs.dart';
|
import '../matrix_api/utils/logs.dart';
|
||||||
import 'cross_signing.dart';
|
import 'cross_signing.dart';
|
||||||
import 'key_manager.dart';
|
import 'key_manager.dart';
|
||||||
import 'key_verification_manager.dart';
|
import 'key_verification_manager.dart';
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ import './utils/session_key.dart';
|
||||||
import '../famedlysdk.dart';
|
import '../famedlysdk.dart';
|
||||||
import '../matrix_api.dart';
|
import '../matrix_api.dart';
|
||||||
import '../src/database/database.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_background.dart';
|
||||||
import '../src/utils/run_in_root.dart';
|
import '../src/utils/run_in_root.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import 'package:olm/olm.dart' as olm;
|
||||||
import 'package:pedantic/pedantic.dart';
|
import 'package:pedantic/pedantic.dart';
|
||||||
|
|
||||||
import '../encryption/utils/json_signature_check_extension.dart';
|
import '../encryption/utils/json_signature_check_extension.dart';
|
||||||
import '../src/utils/logs.dart';
|
import '../matrix_api/utils/logs.dart';
|
||||||
import 'encryption.dart';
|
import 'encryption.dart';
|
||||||
import 'utils/olm_session.dart';
|
import 'utils/olm_session.dart';
|
||||||
import '../src/utils/run_in_root.dart';
|
import '../src/utils/run_in_root.dart';
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import 'package:password_hash/password_hash.dart';
|
||||||
import '../famedlysdk.dart';
|
import '../famedlysdk.dart';
|
||||||
import '../matrix_api.dart';
|
import '../matrix_api.dart';
|
||||||
import '../src/database/database.dart';
|
import '../src/database/database.dart';
|
||||||
import '../src/utils/logs.dart';
|
import '../matrix_api/utils/logs.dart';
|
||||||
import 'encryption.dart';
|
import 'encryption.dart';
|
||||||
|
|
||||||
const CACHE_TYPES = <String>[
|
const CACHE_TYPES = <String>[
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:canonical_json/canonical_json.dart';
|
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;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
extension JsonSignatureCheckExtension on Map<String, dynamic> {
|
extension JsonSignatureCheckExtension on Map<String, dynamic> {
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import 'package:pedantic/pedantic.dart';
|
||||||
|
|
||||||
import '../../famedlysdk.dart';
|
import '../../famedlysdk.dart';
|
||||||
import '../../matrix_api.dart';
|
import '../../matrix_api.dart';
|
||||||
import '../../src/utils/logs.dart';
|
import '../../matrix_api/utils/logs.dart';
|
||||||
import '../encryption.dart';
|
import '../encryption.dart';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
import '../../src/database/database.dart' show DbOlmSessions;
|
import '../../src/database/database.dart' show DbOlmSessions;
|
||||||
import '../../src/utils/logs.dart';
|
import '../../matrix_api/utils/logs.dart';
|
||||||
|
|
||||||
class OlmSession {
|
class OlmSession {
|
||||||
String identityKey;
|
String identityKey;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import 'dart:convert';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
import '../../src/database/database.dart' show DbOutboundGroupSession;
|
import '../../src/database/database.dart' show DbOutboundGroupSession;
|
||||||
import '../../src/utils/logs.dart';
|
import '../../matrix_api/utils/logs.dart';
|
||||||
|
|
||||||
class OutboundGroupSession {
|
class OutboundGroupSession {
|
||||||
/// The devices is a map from user id to device id to if the device is blocked.
|
/// The devices is a map from user id to device id to if the device is blocked.
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
import '../../famedlysdk.dart';
|
import '../../famedlysdk.dart';
|
||||||
import '../../src/database/database.dart' show DbInboundGroupSession;
|
import '../../src/database/database.dart' show DbInboundGroupSession;
|
||||||
import '../../src/utils/logs.dart';
|
import '../../matrix_api/utils/logs.dart';
|
||||||
|
|
||||||
class SessionKey {
|
class SessionKey {
|
||||||
Map<String, dynamic> content;
|
Map<String, dynamic> content;
|
||||||
|
|
|
||||||
|
|
@ -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/user_search_result.dart';
|
||||||
export 'matrix_api/model/well_known_informations.dart';
|
export 'matrix_api/model/well_known_informations.dart';
|
||||||
export 'matrix_api/model/who_is_info.dart';
|
export 'matrix_api/model/who_is_info.dart';
|
||||||
|
export 'matrix_api/model/events/tombstone_content.dart';
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -30,7 +30,7 @@ import 'room.dart';
|
||||||
import 'user.dart';
|
import 'user.dart';
|
||||||
import 'utils/device_keys_list.dart';
|
import 'utils/device_keys_list.dart';
|
||||||
import 'utils/event_update.dart';
|
import 'utils/event_update.dart';
|
||||||
import 'utils/logs.dart';
|
import '../matrix_api/utils/logs.dart';
|
||||||
import 'utils/matrix_file.dart';
|
import 'utils/matrix_file.dart';
|
||||||
import 'utils/room_update.dart';
|
import 'utils/room_update.dart';
|
||||||
import 'utils/to_device_event.dart';
|
import 'utils/to_device_event.dart';
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import '../../famedlysdk.dart' as sdk;
|
||||||
import '../../matrix_api.dart' as api;
|
import '../../matrix_api.dart' as api;
|
||||||
import '../client.dart';
|
import '../client.dart';
|
||||||
import '../room.dart';
|
import '../room.dart';
|
||||||
import '../utils/logs.dart';
|
import '../../matrix_api/utils/logs.dart';
|
||||||
|
|
||||||
part 'database.g.dart';
|
part 'database.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:famedlysdk/matrix_api/model/marked_unread.dart';
|
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:html_unescape/html_unescape.dart';
|
||||||
import 'package:matrix_file_e2ee/matrix_file_e2ee.dart';
|
import 'package:matrix_file_e2ee/matrix_file_e2ee.dart';
|
||||||
|
|
||||||
|
|
@ -31,7 +30,7 @@ import 'event.dart';
|
||||||
import 'timeline.dart';
|
import 'timeline.dart';
|
||||||
import 'user.dart';
|
import 'user.dart';
|
||||||
import 'utils/event_update.dart';
|
import 'utils/event_update.dart';
|
||||||
import 'utils/logs.dart';
|
import '../matrix_api/utils/logs.dart';
|
||||||
import 'utils/markdown.dart';
|
import 'utils/markdown.dart';
|
||||||
import 'utils/matrix_file.dart';
|
import 'utils/matrix_file.dart';
|
||||||
import 'utils/matrix_localizations.dart';
|
import 'utils/matrix_localizations.dart';
|
||||||
|
|
@ -1699,6 +1698,6 @@ class Room {
|
||||||
|
|
||||||
/// Returns informations about how this room is
|
/// Returns informations about how this room is
|
||||||
TombstoneContent get extinctInformations => isExtinct
|
TombstoneContent get extinctInformations => isExtinct
|
||||||
? TombstoneContent.fromJson(getState(EventTypes.RoomTombstone).content)
|
? getState(EventTypes.RoomTombstone).parsedTombstoneContent
|
||||||
: null;
|
: null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import '../matrix_api.dart';
|
||||||
import 'event.dart';
|
import 'event.dart';
|
||||||
import 'room.dart';
|
import 'room.dart';
|
||||||
import 'utils/event_update.dart';
|
import 'utils/event_update.dart';
|
||||||
import 'utils/logs.dart';
|
import '../matrix_api/utils/logs.dart';
|
||||||
import 'utils/room_update.dart';
|
import 'utils/room_update.dart';
|
||||||
|
|
||||||
typedef onTimelineUpdateCallback = void Function();
|
typedef onTimelineUpdateCallback = void Function();
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
import '../../famedlysdk.dart';
|
import '../../famedlysdk.dart';
|
||||||
import '../../matrix_api.dart';
|
import '../../matrix_api.dart';
|
||||||
import 'logs.dart';
|
import '../../matrix_api/utils/logs.dart';
|
||||||
|
|
||||||
enum EventUpdateType {
|
enum EventUpdateType {
|
||||||
timeline,
|
timeline,
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'logs.dart';
|
import '../../matrix_api/utils/logs.dart';
|
||||||
|
|
||||||
Future<T> runInRoot<T>(FutureOr<T> Function() fn) async {
|
Future<T> runInRoot<T>(FutureOr<T> Function() fn) async {
|
||||||
return await Zone.root.run(() async {
|
return await Zone.root.run(() async {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -23,7 +23,7 @@ import 'package:famedlysdk/famedlysdk.dart';
|
||||||
import 'package:famedlysdk/matrix_api.dart';
|
import 'package:famedlysdk/matrix_api.dart';
|
||||||
import 'package:famedlysdk/src/client.dart';
|
import 'package:famedlysdk/src/client.dart';
|
||||||
import 'package:famedlysdk/src/utils/event_update.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/room_update.dart';
|
||||||
import 'package:famedlysdk/src/utils/matrix_file.dart';
|
import 'package:famedlysdk/src/utils/matrix_file.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
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:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
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:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
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:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
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:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
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:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
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:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import 'dart:convert';
|
||||||
|
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
import 'package:famedlysdk/famedlysdk.dart';
|
||||||
import 'package:famedlysdk/encryption.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:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
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:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
import 'package:famedlysdk/encryption/utils/json_signature_check_extension.dart';
|
import 'package:famedlysdk/encryption/utils/json_signature_check_extension.dart';
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
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:famedlysdk/matrix_api.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import 'dart:convert';
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
import 'package:famedlysdk/famedlysdk.dart';
|
||||||
import 'package:famedlysdk/matrix_api.dart';
|
import 'package:famedlysdk/matrix_api.dart';
|
||||||
import 'package:famedlysdk/encryption.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:test/test.dart';
|
||||||
import 'package:encrypt/encrypt.dart';
|
import 'package:encrypt/encrypt.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import 'package:famedlysdk/famedlysdk.dart';
|
||||||
import 'package:famedlysdk/matrix_api.dart';
|
import 'package:famedlysdk/matrix_api.dart';
|
||||||
import 'package:famedlysdk/encryption.dart';
|
import 'package:famedlysdk/encryption.dart';
|
||||||
import 'package:famedlysdk/src/event.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:test/test.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:famedlysdk/famedlysdk.dart';
|
import 'package:famedlysdk/famedlysdk.dart';
|
||||||
import 'package:famedlysdk/matrix_api.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/fake_database.dart';
|
||||||
import 'test_config.dart';
|
import 'test_config.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue