From 9220d5956e92386ff35a92fdcef6531499815c68 Mon Sep 17 00:00:00 2001 From: emreakay Date: Tue, 19 Mar 2024 17:14:45 +0300 Subject: [PATCH 1/4] - remove fix --- src/Contracts/IssueActorModelContract.php | 7 ++++++ src/Models/AIssue.php | 28 +++++++++++++---------- tests/Models/User.php | 11 +++++++++ tests/Unit/AIssueTest.php | 17 ++++++++++++++ 4 files changed, 51 insertions(+), 12 deletions(-) diff --git a/src/Contracts/IssueActorModelContract.php b/src/Contracts/IssueActorModelContract.php index 3580dba..29742d3 100644 --- a/src/Contracts/IssueActorModelContract.php +++ b/src/Contracts/IssueActorModelContract.php @@ -4,6 +4,8 @@ use AuroraWebSoftware\Connective\Collections\ConnectiveCollection; use AuroraWebSoftware\Connective\Contracts\ConnectiveContract; +use Illuminate\Database\Eloquent\Collection; +use Illuminate\Database\Eloquent\Model; /** * issue actor can be one of the following: @@ -26,4 +28,9 @@ public function getActingIssues(string $connectionType): ConnectiveCollection; * ['channel' => 'email', 'email' => 'example@ex.com'] */ public function getIssueReminderConfig(): array; + + /** + * @return Collection + */ + public static function searchIssueActor(string $searchTerm): Collection; } diff --git a/src/Models/AIssue.php b/src/Models/AIssue.php index 9fbedaa..7ad7c54 100644 --- a/src/Models/AIssue.php +++ b/src/Models/AIssue.php @@ -96,7 +96,7 @@ public function setReporter(IssueActorModelContract&Model $issueActorModel): voi { if ($this->connections('issue_reporter')) { $this->connections('issue_reporter') - ->each(fn (Model $connection) => $connection->delete()); + ->each(fn(Model $connection) => $connection->delete()); } $this->connectTo($issueActorModel, 'issue_reporter'); @@ -106,7 +106,7 @@ public function removeReporter(): void { if ($this->connections('issue_reporter')) { $this->connections('issue_reporter') - ->each(fn (Model $connection) => $connection->delete()); + ->each(fn(Model $connection) => $connection->delete()); } } @@ -123,7 +123,7 @@ public function setResponsible(IssueActorModelContract&Model $issueActorModel): { if ($this->connections('issue_responsible')) { $this->connections('issue_responsible') - ->each(fn (Model $connection) => $connection->delete()); + ->each(fn(Model $connection) => $connection->delete()); } $this->connectTo($issueActorModel, 'issue_responsible'); @@ -133,7 +133,7 @@ public function removeResponsible(): void { if ($this->connections('issue_responsible')) { $this->connections('issue_responsible') - ->each(fn (Model $connection) => $connection->delete()); + ->each(fn(Model $connection) => $connection->delete()); } } @@ -167,18 +167,22 @@ public function addObserver(IssueActorModelContract&Model $issueActorModel): voi public function removeObserver(IssueActorModelContract $issueActorModel): void { - foreach ($this->getObservers() ?? [] as $observer) { - if ($observer->getId() === $issueActorModel->getId()) { - $observer->delete(); - break; - } + if ($this->connections('issue_observer')) { + $this->connections('issue_observer') + ->each(function (Model $connection) use ($issueActorModel) { + + if ($connection->connectedTo()->getId() === $issueActorModel->getId()) { + $connection->delete(); + } + }); } } public function removeAllObservers(): void { - foreach ($this->getObservers() ?? [] as $observer) { - $observer->delete(); + if ($this->connections('issue_observer')) { + $this->connections('issue_observer') + ->each(fn(Model $connection) => $connection->delete()); } } @@ -195,7 +199,7 @@ public function setOwnerModel(IssueActorModelContract&Model $issueOwnerModel): v { if ($this->connections('issue_owner_model')) { $this->connections('issue_owner_model') - ->each(fn (Model $connection) => $connection->delete()); + ->each(fn(Model $connection) => $connection->delete()); } $this->connectTo($issueOwnerModel, 'issue_owner_model'); diff --git a/tests/Models/User.php b/tests/Models/User.php index be2577b..bf2da05 100644 --- a/tests/Models/User.php +++ b/tests/Models/User.php @@ -6,6 +6,7 @@ use AuroraWebSoftware\AIssue\Traits\AIssueActor; use AuroraWebSoftware\Connective\Contracts\ConnectiveContract; use AuroraWebSoftware\Connective\Traits\Connective; +use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; /** @@ -32,4 +33,14 @@ public function getIssueReminderConfig(): array { return ['channel' => 'email', 'email' => 'example@ex.com']; } + + /** + * @return Collection + * + * @phpstan-ignore-next-line + */ + public static function searchIssueActor(string $searchTerm): Collection + { + return User::query()->where('name', 'like', '%'.$searchTerm.'%')->get(); + } } diff --git a/tests/Unit/AIssueTest.php b/tests/Unit/AIssueTest.php index 6cd4263..66061cd 100644 --- a/tests/Unit/AIssueTest.php +++ b/tests/Unit/AIssueTest.php @@ -203,6 +203,23 @@ $exampleIssueOwner1->ownIssue($issue); expect($exampleIssueOwner1->getOwningIssues())->toHaveCount(1); + + + // dd(User::searchIssueActor('user')); + + // search actor + expect(User::searchIssueActor('user')) + ->toHaveCount(4) + ->and(User::searchIssueActor('user 1')) + ->toHaveCount(1) + ->and(User::searchIssueActor('user 2')) + ->toHaveCount(1) + ->and(User::searchIssueActor('user 3')) + ->toHaveCount(1) + ->and(User::searchIssueActor('user 4')) + ->toHaveCount(1); + + // todo delete kısmı yazılmadı henüz }); From 6f18132b82f8695b5479c5b657c37258f1bba000 Mon Sep 17 00:00:00 2001 From: emreakay Date: Tue, 19 Mar 2024 14:15:13 +0000 Subject: [PATCH 2/4] Fix styling --- src/Models/AIssue.php | 12 ++++++------ tests/Unit/AIssueTest.php | 3 --- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/Models/AIssue.php b/src/Models/AIssue.php index 7ad7c54..61cf23c 100644 --- a/src/Models/AIssue.php +++ b/src/Models/AIssue.php @@ -96,7 +96,7 @@ public function setReporter(IssueActorModelContract&Model $issueActorModel): voi { if ($this->connections('issue_reporter')) { $this->connections('issue_reporter') - ->each(fn(Model $connection) => $connection->delete()); + ->each(fn (Model $connection) => $connection->delete()); } $this->connectTo($issueActorModel, 'issue_reporter'); @@ -106,7 +106,7 @@ public function removeReporter(): void { if ($this->connections('issue_reporter')) { $this->connections('issue_reporter') - ->each(fn(Model $connection) => $connection->delete()); + ->each(fn (Model $connection) => $connection->delete()); } } @@ -123,7 +123,7 @@ public function setResponsible(IssueActorModelContract&Model $issueActorModel): { if ($this->connections('issue_responsible')) { $this->connections('issue_responsible') - ->each(fn(Model $connection) => $connection->delete()); + ->each(fn (Model $connection) => $connection->delete()); } $this->connectTo($issueActorModel, 'issue_responsible'); @@ -133,7 +133,7 @@ public function removeResponsible(): void { if ($this->connections('issue_responsible')) { $this->connections('issue_responsible') - ->each(fn(Model $connection) => $connection->delete()); + ->each(fn (Model $connection) => $connection->delete()); } } @@ -182,7 +182,7 @@ public function removeAllObservers(): void { if ($this->connections('issue_observer')) { $this->connections('issue_observer') - ->each(fn(Model $connection) => $connection->delete()); + ->each(fn (Model $connection) => $connection->delete()); } } @@ -199,7 +199,7 @@ public function setOwnerModel(IssueActorModelContract&Model $issueOwnerModel): v { if ($this->connections('issue_owner_model')) { $this->connections('issue_owner_model') - ->each(fn(Model $connection) => $connection->delete()); + ->each(fn (Model $connection) => $connection->delete()); } $this->connectTo($issueOwnerModel, 'issue_owner_model'); diff --git a/tests/Unit/AIssueTest.php b/tests/Unit/AIssueTest.php index 66061cd..0294553 100644 --- a/tests/Unit/AIssueTest.php +++ b/tests/Unit/AIssueTest.php @@ -203,8 +203,6 @@ $exampleIssueOwner1->ownIssue($issue); expect($exampleIssueOwner1->getOwningIssues())->toHaveCount(1); - - // dd(User::searchIssueActor('user')); // search actor @@ -219,7 +217,6 @@ ->and(User::searchIssueActor('user 4')) ->toHaveCount(1); - // todo delete kısmı yazılmadı henüz }); From d186f1f20e75e1a6a2da4f8cac51dbd8d45b1869 Mon Sep 17 00:00:00 2001 From: emreakay Date: Tue, 19 Mar 2024 17:18:35 +0300 Subject: [PATCH 3/4] - remove fix --- src/Models/AIssue.php | 5 +++++ tests/Unit/AIssueTest.php | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Models/AIssue.php b/src/Models/AIssue.php index 7ad7c54..50b1eff 100644 --- a/src/Models/AIssue.php +++ b/src/Models/AIssue.php @@ -15,6 +15,7 @@ use AuroraWebSoftware\Connective\Contracts\ConnectiveContract; use AuroraWebSoftware\Connective\Exceptions\ConnectionTypeException; use AuroraWebSoftware\Connective\Exceptions\ConnectionTypeNotSupportedException; +use AuroraWebSoftware\Connective\Models\Connection; use AuroraWebSoftware\Connective\Traits\Connective; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Carbon; @@ -171,6 +172,10 @@ public function removeObserver(IssueActorModelContract $issueActorModel): void $this->connections('issue_observer') ->each(function (Model $connection) use ($issueActorModel) { + /** + * @var Connection $connection + */ + if ($connection->connectedTo()->getId() === $issueActorModel->getId()) { $connection->delete(); } diff --git a/tests/Unit/AIssueTest.php b/tests/Unit/AIssueTest.php index 66061cd..0294553 100644 --- a/tests/Unit/AIssueTest.php +++ b/tests/Unit/AIssueTest.php @@ -203,8 +203,6 @@ $exampleIssueOwner1->ownIssue($issue); expect($exampleIssueOwner1->getOwningIssues())->toHaveCount(1); - - // dd(User::searchIssueActor('user')); // search actor @@ -219,7 +217,6 @@ ->and(User::searchIssueActor('user 4')) ->toHaveCount(1); - // todo delete kısmı yazılmadı henüz }); From ece901e61b2b19751a7c7b7193fc748cea6ede35 Mon Sep 17 00:00:00 2001 From: emreakay Date: Tue, 19 Mar 2024 14:19:05 +0000 Subject: [PATCH 4/4] Fix styling --- src/Models/AIssue.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Models/AIssue.php b/src/Models/AIssue.php index 674ba9b..9bf4118 100644 --- a/src/Models/AIssue.php +++ b/src/Models/AIssue.php @@ -175,7 +175,6 @@ public function removeObserver(IssueActorModelContract $issueActorModel): void /** * @var Connection $connection */ - if ($connection->connectedTo()->getId() === $issueActorModel->getId()) { $connection->delete(); }