DatabaseData.fromUserValue constructor
DatabaseData.fromUserValue({
- required dynamic value,
- required String key,
- required QueryParams queryParams,
- required DateTime dateTime,
Create a new instnace of DatabaseData from user provided values.
Throw UnsupportedDataType if the type of the value
is not supported.
Implementation
factory DatabaseData.fromUserValue({
required dynamic value,
required String key,
required QueryParams queryParams,
required DateTime dateTime,
}) {
DataType dataType;
String? cacheData;
if (value == null) {
dataType = DataType.nullType;
} else if (value is int) {
dataType = DataType.intType;
cacheData = value.toString();
} else if (value is double) {
dataType = DataType.doubleType;
cacheData = value.toString();
} else if (value is String) {
dataType = DataType.stringType;
cacheData = value;
} else if (value is bool) {
dataType = DataType.boolType;
cacheData = value.toString();
} else if (value is List) {
dataType = DataType.listType;
try {
cacheData = jsonEncode(value);
} on JsonUnsupportedObjectError {
throw UnsupportedDataType();
}
} else if (value is Map) {
dataType = DataType.mapType;
try {
cacheData = jsonEncode(value);
} on JsonUnsupportedObjectError {
throw UnsupportedDataType();
}
} else {
throw UnsupportedDataType();
}
return DatabaseData(
key: key,
queryParams: queryParams,
type: dataType,
value: cacheData,
updatedAt: dateTime,
lastUsedAt: dateTime,
useCount: 0,
);
}