it_get_content_of_team_folder

This commit is contained in:
Peter Papp
2021-08-24 17:04:11 +02:00
parent 0c6621494e
commit 78bf913d92
2 changed files with 47 additions and 6 deletions
@@ -3,6 +3,7 @@
namespace Domain\Teams\Controllers; namespace Domain\Teams\Controllers;
use DB; use DB;
use Domain\Files\Models\File;
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;
@@ -19,18 +20,28 @@ class TeamFoldersController extends Controller
public function show($id) public function show($id)
{ {
$folder_id = $id !== 'undefined' $isHomepage = $id === 'undefined';
? Folder::findOrFail($id)->id $rootId = $id === 'undefined' ? null : $id;
: null; $requestedFolder = $rootId ? Folder::findOrFail($rootId) : null;
$folders = Folder::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in']) $folders = Folder::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
->where('parent_id', $folder_id) ->where('parent_id', $rootId)
->where('team_folder', 1) ->where('team_folder', $isHomepage)
->where('user_id', Auth::id()) ->where('user_id', Auth::id())
->sortable() ->sortable()
->get(); ->get();
return response($folders); $files = File::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
->where('folder_id', $rootId)
->where('user_id', Auth::id())
->sortable()
->get();
// Collect folders and files to single array
return [
'content' => collect([$folders, $files])->collapse(),
'folder' => $requestedFolder,
];
} }
public function store( public function store(
+30
View File
@@ -2,6 +2,7 @@
namespace Tests\Domain\Teams; namespace Tests\Domain\Teams;
use Domain\Files\Models\File;
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 Illuminate\Support\Facades\DB;
@@ -252,6 +253,35 @@ class TeamsTest extends TestCase
]); ]);
} }
/**
* @test
*/
public function it_get_content_of_team_folder()
{
$user = User::factory(User::class)
->create();
$folder = Folder::factory()
->create([
'user_id' => $user->id,
'team_folder' => 1,
]);
$file = File::factory()
->create([
'folder_id' => $folder->id,
'user_id' => $user->id,
]);
$this
->actingAs($user)
->getJson("/api/teams/folders/{$folder->id}")
->assertOk()
->assertJsonFragment([
'id' => $file->id,
]);
}
/** /**
* *
*/ */