From be449bb0a498d61fc23953b9412f4e1023db7b0b Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sun, 28 Mar 2021 21:31:52 +0800 Subject: [PATCH] User can cancel family connection request --- .../Users/FamilyConnectionRequestController.php | 4 ++++ .../views/users/partials/action-buttons.blade.php | 2 +- tests/Feature/FamilyConnectionRequestTest.php | 22 ++++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Users/FamilyConnectionRequestController.php b/app/Http/Controllers/Users/FamilyConnectionRequestController.php index 180ddba..3a07dd2 100644 --- a/app/Http/Controllers/Users/FamilyConnectionRequestController.php +++ b/app/Http/Controllers/Users/FamilyConnectionRequestController.php @@ -42,6 +42,10 @@ class FamilyConnectionRequestController extends Controller 'requester_id' => $user->id, 'requested_id' => auth()->id(), 'status_id' => FamilyConnection::STATUS_WAITING, + ])->orWhere([ + 'requester_id' => auth()->id(), + 'requested_id' => $user->id, + 'status_id' => FamilyConnection::STATUS_WAITING, ])->first(); $familyConnection->delete(); diff --git a/resources/views/users/partials/action-buttons.blade.php b/resources/views/users/partials/action-buttons.blade.php index 60668e8..7ab4d64 100644 --- a/resources/views/users/partials/action-buttons.blade.php +++ b/resources/views/users/partials/action-buttons.blade.php @@ -8,7 +8,7 @@ {{ link_to_route('users.marriages', trans('app.show_marriages'), [$user->id], ['class' => Request::segment(3) == 'marriages' ? 'btn btn-default active' : 'btn btn-default']) }} @auth @if (auth()->user()->hasFamilyConnectionRequestTo($user)) - {!! FormField::formButton(['route' => ['users.family_connection_requests.destroy', $user->id]], __('family_connection.cancel_request'), ['class' => 'btn btn-warning', 'id' => 'cancel_family_connection_request']) !!} + {!! FormField::delete(['route' => ['users.family_connection_requests.destroy', $user->id]], __('family_connection.cancel_request'), ['class' => 'btn btn-warning', 'id' => 'cancel_family_connection_request']) !!} @else {!! FormField::formButton(['route' => ['users.family_connection_requests.store', $user->id]], __('family_connection.send_request'), ['class' => 'btn btn-success', 'id' => 'send_family_connection_request']) !!} @endif diff --git a/tests/Feature/FamilyConnectionRequestTest.php b/tests/Feature/FamilyConnectionRequestTest.php index 6a68441..81e20f0 100644 --- a/tests/Feature/FamilyConnectionRequestTest.php +++ b/tests/Feature/FamilyConnectionRequestTest.php @@ -36,6 +36,28 @@ class FamilyConnectionRequestTest extends TestCase } /** @test */ + public function user_can_cancel_family_connection_request_to_other_user() + { + $user = $this->loginAsUser(); + $otherPerson = factory(User::class)->create(); + + FamilyConnection::create([ + 'id' => Uuid::uuid4()->toString(), + 'requester_id' => $user->id, + 'requested_id' => $otherPerson->id, + ]); + + $this->visitRoute('users.show', $otherPerson); + $this->seeElement('button', ['id' => 'cancel_family_connection_request']); + $this->press('cancel_family_connection_request'); + + $this->dontSeeInDatabase('family_connections', [ + 'requester_id' => $otherPerson->id, + 'requested_id' => $user->id, + ]); + } + + /** @test */ public function user_can_accept_family_connection_request_from_other_user() { $user = $this->loginAsUser();