Browse Source

User can send family connetion request to other person

family_member_connections
Nafies Luthfi 5 years ago
parent
commit
be6eac814b
  1. 24
      app/Http/Controllers/Users/FamilyConnectionRequestController.php
  2. 5
      resources/views/users/partials/action-buttons.blade.php
  3. 3
      routes/web.php
  4. 34
      tests/Feature/FamilyConnectionRequestTest.php

24
app/Http/Controllers/Users/FamilyConnectionRequestController.php

@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers\Users;
use App\FamilyMemberConnection;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Http\Request;
use Ramsey\Uuid\Uuid;
class FamilyConnectionRequestController extends Controller
{
public function store(Request $request, User $user)
{
FamilyMemberConnection::create([
'id' => Uuid::uuid4()->toString(),
'requester_id' => auth()->id(),
'requested_id' => $user->id,
'status_id' => FamilyMemberConnection::STATUS_WAITING,
]);
return back();
}
}

5
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']) }}
</div>
@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
</div>

3
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');

34
tests/Feature/FamilyConnectionRequestTest.php

@ -0,0 +1,34 @@
<?php
namespace Tests\Feature;
use App\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class FamilyConnectionRequestTest extends TestCase
{
use RefreshDatabase;
/** @test */
public function user_can_send_family_connection_request_to_other_user()
{
$user = $this->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,
]);
}
}
Loading…
Cancel
Save