Be more specific about clearing (leader, follower) row

Previously anyone unfollowing someone would clear all other rows for
other followers leading to an incorrect state, fix and test

Co-Authored-By: Max Brunsfeld <max@zed.dev>
This commit is contained in:
Julia 2023-02-22 15:29:20 -05:00
parent 36040cd0e1
commit 0324ca3b08
2 changed files with 96 additions and 28 deletions

View file

@ -1760,22 +1760,16 @@ impl Database {
Condition::all()
.add(follower::Column::ProjectId.eq(project_id))
.add(
Condition::any()
.add(
follower::Column::LeaderConnectionServerId
.eq(leader_connection.owner_id)
.and(
follower::Column::LeaderConnectionId
.eq(leader_connection.id),
),
)
.add(
follower::Column::FollowerConnectionServerId
.eq(follower_connection.owner_id)
.and(
follower::Column::FollowerConnectionId
.eq(follower_connection.id),
),
follower::Column::LeaderConnectionServerId
.eq(leader_connection.owner_id)
.and(follower::Column::LeaderConnectionId.eq(leader_connection.id)),
)
.add(
follower::Column::FollowerConnectionServerId
.eq(follower_connection.owner_id)
.and(
follower::Column::FollowerConnectionId
.eq(follower_connection.id),
),
),
)