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