| @@ 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 | /** |
|
| @@ 206-226 (lines=21) @@ | ||
| 203 | * @return array |
|
| 204 | * @throws \Exception |
|
| 205 | */ |
|
| 206 | public function removeMember($circleId, $name) { |
|
| 207 | ||
| 208 | try { |
|
| 209 | $isMod = $this->dbMembers->getMemberFromCircle($circleId, $this->userId); |
|
| 210 | $isMod->hasToBeModerator(); |
|
| 211 | } catch (\Exception $e) { |
|
| 212 | throw $e; |
|
| 213 | } |
|
| 214 | ||
| 215 | try { |
|
| 216 | $member = $this->dbMembers->getMemberFromCircle($circleId, $name); |
|
| 217 | $member->cantBeOwner(); |
|
| 218 | } catch (\Exception $e) { |
|
| 219 | throw $e; |
|
| 220 | } |
|
| 221 | ||
| 222 | $this->dbMembers->remove($member); |
|
| 223 | $circle = $this->dbCircles->getDetailsFromCircle($circleId, $this->userId); |
|
| 224 | ||
| 225 | return $this->dbMembers->getMembersFromCircle($circleId, $circle->getUser()); |
|
| 226 | } |
|
| 227 | ||
| 228 | } |
|