fix: use rpc-backed lookup for member removal
This commit is contained in:
parent
943f08e92b
commit
d03e276ddf
1 changed files with 7 additions and 9 deletions
|
|
@ -374,24 +374,22 @@ class CollectionService {
|
|||
throw Exception('Collection owner cannot be removed.');
|
||||
}
|
||||
|
||||
final targetMembership = await supabase
|
||||
.from('collection_members')
|
||||
.select('id, role')
|
||||
.eq('collection_id', collectionId)
|
||||
.eq('user_id', memberUserId)
|
||||
.maybeSingle();
|
||||
final members = await getMembers(collectionId);
|
||||
final targetMembership = members.where((member) => member.userId == memberUserId);
|
||||
|
||||
if (targetMembership == null) {
|
||||
if (targetMembership.isEmpty) {
|
||||
throw Exception('Member not found in this collection.');
|
||||
}
|
||||
if (targetMembership['role'] == 'owner') {
|
||||
final target = targetMembership.first;
|
||||
if (target.role == 'owner') {
|
||||
throw Exception('Collection owner cannot be removed.');
|
||||
}
|
||||
|
||||
final deleted = await supabase
|
||||
.from('collection_members')
|
||||
.delete()
|
||||
.eq('id', targetMembership['id'] as String)
|
||||
.eq('collection_id', collectionId)
|
||||
.eq('user_id', memberUserId)
|
||||
.select('id');
|
||||
|
||||
if (deleted.isEmpty) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue