mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 16:22:14 +00:00
it_reject_team_folder_invite
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Domain\Teams\Controllers\AcceptTeamFolderInvitationController;
|
use Domain\Teams\Controllers\InvitationsController;
|
||||||
use Domain\Teams\Controllers\TeamFoldersController;
|
use Domain\Teams\Controllers\TeamFoldersController;
|
||||||
|
|
||||||
Route::apiResource('/team-folders', TeamFoldersController::class);
|
|
||||||
|
|
||||||
Route::post('/invitations/{invitation}', AcceptTeamFolderInvitationController::class);
|
Route::apiResource('/invitations', InvitationsController::class)
|
||||||
|
->only('destroy', 'update');
|
||||||
|
|
||||||
|
Route::apiResource('/team-folders', TeamFoldersController::class);
|
||||||
|
|||||||
@@ -1,20 +1,18 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
namespace Domain\Teams\Controllers;
|
namespace Domain\Teams\Controllers;
|
||||||
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Users\Models\User;
|
use App\Users\Models\User;
|
||||||
use Domain\Teams\Models\TeamFoldersInvitation;
|
use Domain\Teams\Models\TeamFoldersInvitation;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
class AcceptTeamFolderInvitationController extends Controller
|
class InvitationsController extends Controller
|
||||||
{
|
{
|
||||||
public function __invoke(TeamFoldersInvitation $invitation): Response
|
public function update(
|
||||||
{
|
TeamFoldersInvitation $invitation
|
||||||
|
): Response {
|
||||||
$user = User::where('email', $invitation->email)
|
$user = User::where('email', $invitation->email)
|
||||||
->firstOrFail();
|
->firstOrFail();
|
||||||
|
|
||||||
@@ -29,6 +27,17 @@ class AcceptTeamFolderInvitationController extends Controller
|
|||||||
'permission' => 'can-edit',
|
'permission' => 'can-edit',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return response('Done', 201);
|
return response('Done', 204);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy(
|
||||||
|
TeamFoldersInvitation $invitation
|
||||||
|
): Response {
|
||||||
|
|
||||||
|
$invitation->update([
|
||||||
|
'status' => 'rejected',
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response('Done', 204);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,26 +96,56 @@ class TeamsTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->actingAs($member)
|
->actingAs($member)
|
||||||
->postJson("/api/teams/invitations/{$invitation->id}")
|
->putJson("/api/teams/invitations/{$invitation->id}")
|
||||||
->assertCreated();
|
->assertNoContent();
|
||||||
|
|
||||||
$this
|
$this
|
||||||
|
->assertDatabaseHas('team_folders_invitations', [
|
||||||
|
'folder_id' => $folder->id,
|
||||||
|
'status' => 'accepted',
|
||||||
|
])
|
||||||
->assertDatabaseHas('team_folder_members', [
|
->assertDatabaseHas('team_folder_members', [
|
||||||
'folder_id' => $folder->id,
|
'folder_id' => $folder->id,
|
||||||
'member_id' => $member->id,
|
'member_id' => $member->id,
|
||||||
'permission' => 'can-edit',
|
'permission' => 'can-edit',
|
||||||
])
|
|
||||||
->assertDatabaseHas('team_folders_invitations', [
|
|
||||||
'folder_id' => $folder->id,
|
|
||||||
'status' => 'accepted',
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* @test
|
||||||
*/
|
*/
|
||||||
public function it_reject_team_folder_invite()
|
public function it_reject_team_folder_invite()
|
||||||
{
|
{
|
||||||
|
$member = User::factory(User::class)
|
||||||
|
->create([
|
||||||
|
'email' => 'john@internal.com',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$folder = Folder::factory()
|
||||||
|
->create();
|
||||||
|
|
||||||
|
$invitation = TeamFoldersInvitation::factory()
|
||||||
|
->create([
|
||||||
|
'folder_id' => $folder->id,
|
||||||
|
'email' => $member->email,
|
||||||
|
'status' => 'pending',
|
||||||
|
'permission' => 'can-edit',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this
|
||||||
|
->actingAs($member)
|
||||||
|
->deleteJson("/api/teams/invitations/{$invitation->id}")
|
||||||
|
->assertNoContent();
|
||||||
|
|
||||||
|
$this
|
||||||
|
->assertDatabaseHas('team_folders_invitations', [
|
||||||
|
'folder_id' => $folder->id,
|
||||||
|
'status' => 'rejected',
|
||||||
|
])
|
||||||
|
->assertDatabaseMissing('team_folder_members', [
|
||||||
|
'folder_id' => $folder->id,
|
||||||
|
'member_id' => $member->id,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user