[Persistence] Delete members, read data before adding new one

Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2021-01-29 19:17:07 +05:30
parent ab9266bfeb
commit e85a4326d6
6 changed files with 61 additions and 12 deletions
@@ -16,7 +16,7 @@ class MemberDao extends DatabaseAccessor<MoorChatDatabase>
/// Creates a new member dao instance
MemberDao(MoorChatDatabase db) : super(db);
/// Get all members where [members.channelCid] matches [cid]
/// Get all members where [Members.channelCid] matches [cid]
Future<List<Member>> getMembersByCid(String cid) async {
return (select(members).join([
leftOuterJoin(users, members.userId.equalsExp(users.id)),
@@ -40,4 +40,14 @@ class MemberDao extends DatabaseAccessor<MoorChatDatabase>
),
);
}
/// Deletes all the members whose [Members.channelCid] is present in [cids]
Future<void> deleteMemberByCids(List<String> cids) async {
return batch((it) {
it.deleteWhere<Members, MemberEntity>(
members,
(m) => m.channelCid.isIn(cids),
);
});
}
}