Update API scheme on layer 202.

This commit is contained in:
John Preston
2025-03-28 23:04:14 +05:00
parent 4401ea388c
commit 4eaf03b922
16 changed files with 123 additions and 81 deletions

View File

@@ -124,8 +124,8 @@ Block Call::makeJoinBlock() {
};
}
Block Call::makeRemoveBlock(UserId id) {
if (failed() || !_id || id == _myUserId) {
Block Call::makeRemoveBlock(const base::flat_set<UserId> &ids) {
if (failed() || !_id) {
return {};
}
@@ -137,11 +137,13 @@ Block Call::makeRemoveBlock(UserId id) {
auto found = false;
auto updated = state.value();
auto &list = updated.participants;
for (auto i = begin(list); i != end(list); ++i) {
if (uint64(i->user_id) == id.v) {
list.erase(i);
for (auto i = begin(list); i != end(list);) {
const auto userId = UserId{ uint64(i->user_id) };
if (userId != _myUserId && ids.contains(userId)) {
i = list.erase(i);
found = true;
break;
} else {
++i;
}
}
if (!found) {

View File

@@ -97,7 +97,7 @@ public:
void refreshLastBlock0(std::optional<Block> block);
[[nodiscard]] Block makeJoinBlock();
[[nodiscard]] Block makeRemoveBlock(UserId id);
[[nodiscard]] Block makeRemoveBlock(const base::flat_set<UserId> &ids);
[[nodiscard]] rpl::producer<ParticipantsSet> participantsSetValue() const;