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

View File

@@ -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

View File

@@ -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);

View File

@@ -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);
}
}

View File

@@ -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);
}
/**