mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 16:22:14 +00:00
it_dissolve_team_folder
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Factories;
|
||||
|
||||
use Domain\Folders\Models\Folder;
|
||||
@@ -21,13 +22,14 @@ class FolderFactory extends Factory
|
||||
public function definition()
|
||||
{
|
||||
return [
|
||||
'id' => $this->faker->uuid,
|
||||
'user_id' => $this->faker->uuid,
|
||||
'name' => $this->faker->word,
|
||||
'author' => $this->faker->randomElement(
|
||||
'id' => $this->faker->uuid,
|
||||
'user_id' => $this->faker->uuid,
|
||||
'name' => $this->faker->word,
|
||||
'team_folder' => $this->faker->boolean(),
|
||||
'author' => $this->faker->randomElement(
|
||||
['user', 'member', 'visitor']
|
||||
),
|
||||
'created_at' => $this->faker->dateTimeBetween(
|
||||
'created_at' => $this->faker->dateTimeBetween(
|
||||
$startDate = '-36 months',
|
||||
$endDate = 'now',
|
||||
$timezone = null
|
||||
|
||||
@@ -8,5 +8,5 @@ use Domain\Teams\Controllers\TeamFoldersController;
|
||||
Route::apiResource('/invitations', InvitationsController::class)
|
||||
->only('destroy', 'update');
|
||||
|
||||
Route::post('/team-folders/convert/{folder}', ConvertFolderIntoTeamFolderController::class);
|
||||
Route::apiResource('/team-folders', TeamFoldersController::class);
|
||||
Route::post('/folders/convert/{folder}', ConvertFolderIntoTeamFolderController::class);
|
||||
Route::apiResource('/folders', TeamFoldersController::class);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace Domain\Teams\Controllers;
|
||||
|
||||
use DB;
|
||||
use Domain\Teams\Actions\InviteMembersIntoTeamFolderAction;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
@@ -31,4 +32,17 @@ class TeamFoldersController extends Controller
|
||||
|
||||
return response($folder, 201);
|
||||
}
|
||||
|
||||
public function destroy(Folder $folder): Response
|
||||
{
|
||||
$folder->update([
|
||||
'team_folder' => 0,
|
||||
]);
|
||||
|
||||
DB::table('team_folder_members')
|
||||
->where('folder_id', $folder->id)
|
||||
->delete();
|
||||
|
||||
return response('Done.', 204);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace Tests\Domain\Teams;
|
||||
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Domain\Teams\Models\TeamFoldersInvitation;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Notification;
|
||||
use Tests\TestCase;
|
||||
use App\Users\Models\User;
|
||||
@@ -26,7 +27,7 @@ class TeamsTest extends TestCase
|
||||
|
||||
$this
|
||||
->actingAs($user)
|
||||
->post('/api/teams/team-folders', [
|
||||
->post('/api/teams/folders', [
|
||||
'name' => 'Company Project',
|
||||
'members' => [
|
||||
[
|
||||
@@ -74,7 +75,7 @@ class TeamsTest extends TestCase
|
||||
|
||||
$this
|
||||
->actingAs($user)
|
||||
->post("/api/teams/team-folders/convert/{$folder->id}", [
|
||||
->post("/api/teams/folders/convert/{$folder->id}", [
|
||||
'members' => [
|
||||
[
|
||||
'email' => 'john@internal.com',
|
||||
@@ -189,10 +190,43 @@ class TeamsTest extends TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @test
|
||||
*/
|
||||
public function it_dissolve_team_folder()
|
||||
{
|
||||
$user = User::factory(User::class)
|
||||
->create();
|
||||
|
||||
$members = User::factory(User::class)
|
||||
->count(2)
|
||||
->create();
|
||||
|
||||
$folder = Folder::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'team_folder' => 1,
|
||||
]);
|
||||
|
||||
DB::table('team_folder_members')
|
||||
->insert([
|
||||
[
|
||||
'folder_id' => $folder->id,
|
||||
'member_id' => $members[0]->id,
|
||||
'permission' => 'can-edit',
|
||||
],
|
||||
[
|
||||
'folder_id' => $folder->id,
|
||||
'member_id' => $members[1]->id,
|
||||
'permission' => 'can-edit',
|
||||
],
|
||||
]);
|
||||
|
||||
$this
|
||||
->actingAs($user)
|
||||
->deleteJson("/api/teams/folders/{$folder->id}")
|
||||
->assertNoContent();
|
||||
|
||||
$this->assertDatabaseCount('team_folder_members', 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user