class MyIdentifiablePostgresPersistence
extends IdentifiablePostgresPersistence<MyData, String>
implements IMyDataPersistence {
MyIdentifiablePostgresPersistence() : super('mydata', null);
@override
void defineSchema_() {
clearSchema();
ensureSchema_('CREATE TABLE IF NOT EXISTS ' +
tableName_! +
' (id TEXT PRIMARY KEY, type TEXT, name TEXT)');
ensureIndex_(tableName_! + '_key', {'key': 1}, {'unique': true});
}
String _composeFilter(FilterParams? filter) {
filter ??= FilterParams();
var key = filter.getAsNullableString('key');
var content = filter.getAsNullableString('content');
var filterCondition = '';
if (key != null) {
filterCondition += "key='" + key + "'";
}
if (content != null) {
filterCondition += "content='" + content + "'";
}
return filterCondition;
}
String? _composeSort(SortParams? sort) {
sort ??= SortParams(null);
var composeSort = '';
for (var i = 0; i < sort.length; i++) {
composeSort += sort[i].name! + (sort[i].ascending ? ' ASC' : ' DESC');
}
return composeSort != '' ? composeSort : null;
}
@override
Future<DataPage<MyData>> getPageByFilter(String? correlationId,
FilterParams filter, PagingParams? paging, SortParams? sort) {
return super.getPageByFilter_(correlationId, _composeFilter(filter), paging,
_composeSort(sort), null);
}
@override
Future<int> getCountByFilter(String? correlationId, FilterParams filter) {
return super.getCountByFilter_(correlationId, _composeFilter(filter));
}
@override
Future<List<MyData>> getListByFilter(
String? correlationId, FilterParams filter, SortParams sort) {
return super.getListByFilter_(
correlationId, _composeFilter(filter), _composeSort(sort), null);
}
@override
Future<void> deleteByFilter(String? correlationId, FilterParams filter) {
return super.deleteByFilter_(correlationId, _composeFilter(filter));
}
}