it_dissolve_team_folder

This commit is contained in:
Peter Papp
2021-08-24 14:25:10 +02:00
parent 80a86bbddd
commit e0ecfce382
4 changed files with 60 additions and 10 deletions
+7 -5
View File
@@ -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
View File
@@ -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);
}
} }
+37 -3
View File
@@ -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);
} }
/** /**