From be6eac814b25eb463cbfb52ddfb578fa2dddff75 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sun, 28 Mar 2021 18:28:25 +0800 Subject: [PATCH] User can send family connetion request to other person --- .../Users/FamilyConnectionRequestController.php | 24 +++++++++++++++ .../views/users/partials/action-buttons.blade.php | 5 +++- routes/web.php | 3 ++ tests/Feature/FamilyConnectionRequestTest.php | 34 ++++++++++++++++++++++ 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/Users/FamilyConnectionRequestController.php create mode 100644 tests/Feature/FamilyConnectionRequestTest.php diff --git a/app/Http/Controllers/Users/FamilyConnectionRequestController.php b/app/Http/Controllers/Users/FamilyConnectionRequestController.php new file mode 100644 index 0000000..cfb8f9f --- /dev/null +++ b/app/Http/Controllers/Users/FamilyConnectionRequestController.php @@ -0,0 +1,24 @@ + Uuid::uuid4()->toString(), + 'requester_id' => auth()->id(), + 'requested_id' => $user->id, + 'status_id' => FamilyMemberConnection::STATUS_WAITING, + ]); + + return back(); + } +} diff --git a/resources/views/users/partials/action-buttons.blade.php b/resources/views/users/partials/action-buttons.blade.php index 4b78ac1..3059486 100644 --- a/resources/views/users/partials/action-buttons.blade.php +++ b/resources/views/users/partials/action-buttons.blade.php @@ -6,4 +6,7 @@ {{ link_to_route('users.chart', trans('app.show_family_chart'), [$user->id], ['class' => Request::segment(3) == 'chart' ? 'btn btn-default active' : 'btn btn-default']) }} {{ link_to_route('users.tree', trans('app.show_family_tree'), [$user->id], ['class' => Request::segment(3) == 'tree' ? 'btn btn-default active' : 'btn btn-default']) }} {{ link_to_route('users.marriages', trans('app.show_marriages'), [$user->id], ['class' => Request::segment(3) == 'marriages' ? 'btn btn-default active' : 'btn btn-default']) }} - \ No newline at end of file + @auth + {!! FormField::formButton(['route' => ['users.family_connection_requests.store', $user->id]], __('family_connection.send_request'), ['class' => 'btn btn-success', 'id' => 'send_family_connection_request']) !!} + @endauth + diff --git a/routes/web.php b/routes/web.php index 7403c45..807608c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -18,6 +18,9 @@ Auth::routes(); Route::group(['middleware' => 'auth'], function () { Route::get('password/change', 'Auth\ChangePasswordController@show')->name('password.change'); Route::post('password/change', 'Auth\ChangePasswordController@update')->name('password.change'); + + Route::post('users/{user}/send_family_connection_request', 'Users\FamilyConnectionRequestController@store') + ->name('users.family_connection_requests.store'); }); Route::get('home', 'HomeController@index')->name('home'); diff --git a/tests/Feature/FamilyConnectionRequestTest.php b/tests/Feature/FamilyConnectionRequestTest.php new file mode 100644 index 0000000..a0d754c --- /dev/null +++ b/tests/Feature/FamilyConnectionRequestTest.php @@ -0,0 +1,34 @@ +loginAsUser(); + $otherPerson = factory(User::class)->create(); + + $this->dontSeeInDatabase('family_member_connections', [ + 'requester_id' => $user->id, + 'requested_id' => $otherPerson->id, + ]); + + $this->visitRoute('users.show', $otherPerson); + $this->seeElement('button', ['id' => 'send_family_connection_request']); + $this->press('send_family_connection_request'); + $this->seeRouteIs('users.show', $otherPerson); + + $this->seeInDatabase('family_member_connections', [ + 'requester_id' => $user->id, + 'requested_id' => $otherPerson->id, + ]); + } +}