[StreamChatPersistence] Add initial implementation

Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2021-01-25 19:14:55 +05:30
parent 1021814a75
commit 657b58af8b
47 changed files with 1878 additions and 1 deletions
@@ -0,0 +1,22 @@
import 'dart:convert';
import 'package:moor/moor.dart';
///
class ListConverter<T> extends TypeConverter<List<T>, String> {
@override
List<T> mapToDart(fromDb) {
if (fromDb == null) {
return null;
}
return List<T>.from(jsonDecode(fromDb) ?? []);
}
@override
String mapToSql(value) {
if (value == null) {
return null;
}
return jsonEncode(value);
}
}
@@ -0,0 +1,22 @@
import 'dart:convert';
import 'package:moor/moor.dart';
///
class MapConverter<T> extends TypeConverter<Map<String, T>, String> {
@override
Map<String, T> mapToDart(fromDb) {
if (fromDb == null) {
return null;
}
return Map<String, T>.from(jsonDecode(fromDb) ?? {});
}
@override
String mapToSql(value) {
if (value == null) {
return null;
}
return jsonEncode(value);
}
}
@@ -0,0 +1,50 @@
import 'package:moor/moor.dart';
import 'package:stream_chat/stream_chat.dart';
///
class MessageSendingStatusConverter
extends TypeConverter<MessageSendingStatus, int> {
@override
MessageSendingStatus mapToDart(int fromDb) {
switch (fromDb) {
case 0:
return MessageSendingStatus.sending;
case 1:
return MessageSendingStatus.sent;
case 2:
return MessageSendingStatus.failed;
case 3:
return MessageSendingStatus.updating;
case 4:
return MessageSendingStatus.failed_update;
case 5:
return MessageSendingStatus.deleting;
case 6:
return MessageSendingStatus.failed_delete;
default:
return null;
}
}
@override
int mapToSql(MessageSendingStatus value) {
switch (value) {
case MessageSendingStatus.sending:
return 0;
case MessageSendingStatus.sent:
return 1;
case MessageSendingStatus.failed:
return 2;
case MessageSendingStatus.updating:
return 3;
case MessageSendingStatus.failed_update:
return 4;
case MessageSendingStatus.deleting:
return 5;
case MessageSendingStatus.failed_delete:
return 6;
default:
return null;
}
}
}