Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
update population
Signed-off-by: Maxence Lange <[email protected]>
  • Loading branch information
ArtificialOwl authored and backportbot[bot] committed Mar 13, 2022
commit 5c7a9a9fb509bcbf58d2e6808e86c9009f66c216
2 changes: 2 additions & 0 deletions lib/FederatedItems/CircleJoin.php
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,8 @@ public function manage(FederatedEvent $event): void {
$this->membershipService->onUpdate($member->getSingleId());
$this->eventService->memberJoining($event);
}

$this->membershipService->updatePopulation($event->getCircle());
}


Expand Down
2 changes: 2 additions & 0 deletions lib/FederatedItems/CircleLeave.php
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,8 @@ public function manage(FederatedEvent $event): void {
$this->membershipService->onUpdate($circle->getSingleId());
$this->eventService->circleDestroying($event);
}

$this->membershipService->updatePopulation($event->getCircle());
}


Expand Down
2 changes: 2 additions & 0 deletions lib/FederatedItems/MassiveMemberAdd.php
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ public function manage(FederatedEvent $event): void {
} catch (Exception $e) {
}
}

$this->membershipService->updatePopulation($event->getCircle());
}


Expand Down
1 change: 1 addition & 0 deletions lib/FederatedItems/MemberRemove.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ public function manage(FederatedEvent $event): void {
// TODO: Remove invited members from this user that have not accepted their invitation

$this->eventService->memberRemoving($event);
$this->membershipService->updatePopulation($event->getCircle());
}


Expand Down
1 change: 1 addition & 0 deletions lib/FederatedItems/SingleMemberAdd.php
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ public function manage(FederatedEvent $event): void {
$this->eventService->memberAdding($event);
}

$this->membershipService->updatePopulation($event->getCircle());

// //
// // TODO: verifiez comment se passe le cached name sur un member_add
Expand Down
20 changes: 20 additions & 0 deletions lib/Service/MembershipService.php
Original file line number Diff line number Diff line change
Expand Up @@ -387,4 +387,24 @@ private function getMembershipsFromList(array $list, string $circleId): Membersh

throw new ItemNotFoundException();
}


/**
* @param Circle $circle
*/
public function updatePopulation(Circle $circle): void {
$local = $inherited = 0;
$memberships = $this->membershipRequest->getInherited($circle->getSingleId(), Member::LEVEL_MEMBER);
foreach ($memberships as $membership) {
$inherited++;
if ($membership->getCircleId() === $circle->getSingleId()) {
$local++;
}
}

$settings = $circle->getSettings();
$settings['population'] = $local;
$settings['populationInherited'] = $inherited;
$this->circleRequest->updateSettings($circle->setSettings($settings));
}
}