| @@ 182-203 (lines=22) @@ | ||
| 179 | * @return null|Member |
|
| 180 | * @throws \Exception |
|
| 181 | */ |
|
| 182 | public function joinCircle($circleId) { |
|
| 183 | ||
| 184 | try { |
|
| 185 | $circle = $this->dbCircles->getDetailsFromCircle($circleId, $this->userId); |
|
| 186 | ||
| 187 | try { |
|
| 188 | $member = $this->dbMembers->getMemberFromCircle($circle->getId(), $this->userId); |
|
| 189 | } catch (MemberDoesNotExistException $m) { |
|
| 190 | $member = new Member($this->userId, $circle->getId()); |
|
| 191 | $this->dbMembers->add($member); |
|
| 192 | } |
|
| 193 | ||
| 194 | $member->hasToBeAbleToJoinTheCircle(); |
|
| 195 | $member->joinCircle($circle->getType()); |
|
| 196 | $this->dbMembers->editMember($member); |
|
| 197 | ||
| 198 | } catch (\Exception $e) { |
|
| 199 | throw $e; |
|
| 200 | } |
|
| 201 | ||
| 202 | return $member; |
|
| 203 | } |
|
| 204 | ||
| 205 | ||
| 206 | /** |
|
| @@ 173-193 (lines=21) @@ | ||
| 170 | * @return array |
|
| 171 | * @throws \Exception |
|
| 172 | */ |
|
| 173 | public function removeMember($circleId, $name) { |
|
| 174 | ||
| 175 | try { |
|
| 176 | $isMod = $this->dbMembers->getMemberFromCircle($circleId, $this->userId); |
|
| 177 | $isMod->hasToBeModerator(); |
|
| 178 | } catch (\Exception $e) { |
|
| 179 | throw $e; |
|
| 180 | } |
|
| 181 | ||
| 182 | try { |
|
| 183 | $member = $this->dbMembers->getMemberFromCircle($circleId, $name); |
|
| 184 | $member->cantBeOwner(); |
|
| 185 | } catch (\Exception $e) { |
|
| 186 | throw $e; |
|
| 187 | } |
|
| 188 | ||
| 189 | $this->dbMembers->remove($member); |
|
| 190 | $circle = $this->dbCircles->getDetailsFromCircle($circleId, $this->userId); |
|
| 191 | ||
| 192 | return $this->dbMembers->getMembersFromCircle($circleId, $circle->getUser()); |
|
| 193 | } |
|
| 194 | ||
| 195 | } |
|