Browse Source

Add cancel family connection request button

family_member_connections
Nafies Luthfi 5 years ago
parent
commit
a1ab542407
  1. 11
      app/User.php
  2. 6
      resources/views/users/partials/action-buttons.blade.php
  3. 3
      routes/web.php
  4. 1
      tests/Feature/FamilyConnectionRequestTest.php
  5. 19
      tests/Unit/UserTest.php

11
app/User.php

@ -316,4 +316,15 @@ class User extends Authenticatable
return Carbon::now()->diffInDays($this->birthday, false);
}
}
public function hasFamilyConnectionRequestTo(User $user)
{
$familyConnetction = FamilyConnection::where([
'requester_id' => $this->id,
'requested_id' => $user->id,
'status_id' => 0,
])->count();
return !!$familyConnetction;
}
}

6
resources/views/users/partials/action-buttons.blade.php

@ -7,6 +7,10 @@
{{ 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']) }}
@auth
{!! FormField::formButton(['route' => ['users.family_connection_requests.store', $user->id]], __('family_connection.send_request'), ['class' => 'btn btn-success', 'id' => 'send_family_connection_request']) !!}
@if (auth()->user()->hasFamilyConnectionRequestTo($user))
{!! FormField::formButton(['route' => ['users.family_connection_requests.delete', $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
@endauth
</div>

3
routes/web.php

@ -21,6 +21,9 @@ Route::group(['middleware' => 'auth'], function () {
Route::post('users/{user}/send_family_connection_request', 'Users\FamilyConnectionRequestController@store')
->name('users.family_connection_requests.store');
Route::delete('users/{user}/cancel_family_connection_request', 'Users\FamilyConnectionRequestController@store')
->name('users.family_connection_requests.delete');
});
Route::get('home', 'HomeController@index')->name('home');

1
tests/Feature/FamilyConnectionRequestTest.php

@ -25,6 +25,7 @@ class FamilyConnectionRequestTest extends TestCase
$this->seeElement('button', ['id' => 'send_family_connection_request']);
$this->press('send_family_connection_request');
$this->seeRouteIs('users.show', $otherPerson);
$this->seeElement('button', ['id' => 'cancel_family_connection_request']);
$this->seeInDatabase('family_connections', [
'requester_id' => $user->id,

19
tests/Unit/UserTest.php

@ -3,10 +3,12 @@
namespace Tests\Unit;
use App\Couple;
use App\FamilyConnection;
use App\User;
use Carbon\Carbon;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Collection;
use Ramsey\Uuid\Uuid;
use Tests\TestCase;
class UserTest extends TestCase
@ -266,4 +268,21 @@ class UserTest extends TestCase
$customer->birthday_remaining
);
}
/** @test */
public function a_user_model_has_method_has_family_connection_request_to()
{
$john = factory(User::class)->create();
$jane = factory(User::class)->create();
$this->assertFalse($john->hasFamilyConnectionRequestTo($jane));
FamilyConnection::create([
'id' => Uuid::uuid4()->toString(),
'requester_id' => $john->id,
'requested_id' => $jane->id,
]);
$this->assertTrue($john->hasFamilyConnectionRequestTo($jane));
}
}
Loading…
Cancel
Save