diff --git a/routes/teams.php b/routes/teams.php index 1d98b7f7..c15582f3 100644 --- a/routes/teams.php +++ b/routes/teams.php @@ -5,8 +5,7 @@ use Domain\Teams\Controllers\InvitationsController; use Domain\Teams\Controllers\TeamFoldersController; -Route::apiResource('/invitations', InvitationsController::class) - ->only('destroy', 'update'); -Route::post('/folders/convert/{folder}', ConvertFolderIntoTeamFolderController::class); +Route::post('/convert/{folder}', ConvertFolderIntoTeamFolderController::class); +Route::apiResource('/invitations', InvitationsController::class); Route::apiResource('/folders', TeamFoldersController::class); diff --git a/src/Domain/Folders/Models/Folder.php b/src/Domain/Folders/Models/Folder.php index a39a0b18..a121da40 100644 --- a/src/Domain/Folders/Models/Folder.php +++ b/src/Domain/Folders/Models/Folder.php @@ -1,4 +1,5 @@ 'array', + 'emoji' => 'array', + 'team_folder' => 'boolean', ]; protected $hidden = [ @@ -132,9 +134,9 @@ class Folder extends Model /** * Format deleted at date reformat */ - public function getDeletedAtAttribute(): string | null + public function getDeletedAtAttribute(): string|null { - if (! $this->attributes['deleted_at']) { + if (!$this->attributes['deleted_at']) { return null; } @@ -226,7 +228,7 @@ class Folder extends Model parent::boot(); static::creating(function ($model) { - $model->id = (string) Str::uuid(); + $model->id = (string)Str::uuid(); }); static::deleting(function ($item) { diff --git a/src/Domain/Teams/Controllers/ConvertFolderIntoTeamFolderController.php b/src/Domain/Teams/Controllers/ConvertFolderIntoTeamFolderController.php index a1482420..1472e5cd 100644 --- a/src/Domain/Teams/Controllers/ConvertFolderIntoTeamFolderController.php +++ b/src/Domain/Teams/Controllers/ConvertFolderIntoTeamFolderController.php @@ -20,7 +20,11 @@ class ConvertFolderIntoTeamFolderController extends Controller Request $request, Folder $folder ): Response { - $folder->update(['team_folder' => 1]); + + $folder->update([ + 'team_folder' => 1, + 'parent_id' => null, + ]); // Invite team members ($this->inviteMembers)($request->input('members'), $folder); diff --git a/src/Domain/Teams/Controllers/TeamFoldersController.php b/src/Domain/Teams/Controllers/TeamFoldersController.php index 4514a1c4..eaf9f99b 100644 --- a/src/Domain/Teams/Controllers/TeamFoldersController.php +++ b/src/Domain/Teams/Controllers/TeamFoldersController.php @@ -9,6 +9,7 @@ use Illuminate\Http\Response; use Domain\Folders\Models\Folder; use App\Http\Controllers\Controller; use Domain\Teams\DTO\CreateTeamFolderData; +use Illuminate\Support\Facades\Auth; class TeamFoldersController extends Controller { @@ -16,6 +17,22 @@ class TeamFoldersController extends Controller public InviteMembersIntoTeamFolderAction $inviteMembers, ) {} + public function show($id) + { + $folder_id = $id !== 'undefined' + ? Folder::findOrFail($id)->id + : null; + + $folders = Folder::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in']) + ->where('parent_id', $folder_id) + ->where('team_folder', 1) + ->where('user_id', Auth::id()) + ->sortable() + ->get(); + + return response($folders); + } + public function store( Request $request, ): Response { diff --git a/tests/Domain/Teams/TeamsTest.php b/tests/Domain/Teams/TeamsTest.php index 72c9dfeb..4ed9c1c8 100644 --- a/tests/Domain/Teams/TeamsTest.php +++ b/tests/Domain/Teams/TeamsTest.php @@ -75,7 +75,7 @@ class TeamsTest extends TestCase $this ->actingAs($user) - ->post("/api/teams/folders/convert/{$folder->id}", [ + ->post("/api/teams/convert/{$folder->id}", [ 'members' => [ [ 'email' => 'john@internal.com', @@ -230,17 +230,26 @@ class TeamsTest extends TestCase } /** - * - */ - public function it_move_items_into_team_folder() - { - } - - /** - * + * @test */ public function it_get_all_team_folders() { + $user = User::factory(User::class) + ->create(); + + $folder = Folder::factory() + ->create([ + 'user_id' => $user->id, + 'team_folder' => 1, + ]); + + $this + ->actingAs($user) + ->getJson("/api/teams/folders/undefined") + ->assertOk() + ->assertJsonFragment([ + 'id' => $folder->id, + ]); } /**