mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-13 08:45:01 +00:00
it_get_all_team_folders
This commit is contained in:
+2
-3
@@ -5,8 +5,7 @@ use Domain\Teams\Controllers\InvitationsController;
|
|||||||
use Domain\Teams\Controllers\TeamFoldersController;
|
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);
|
Route::apiResource('/folders', TeamFoldersController::class);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Domain\Folders\Models;
|
namespace Domain\Folders\Models;
|
||||||
|
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
@@ -49,7 +50,8 @@ class Folder extends Model
|
|||||||
];
|
];
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'emoji' => 'array',
|
'emoji' => 'array',
|
||||||
|
'team_folder' => 'boolean',
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $hidden = [
|
protected $hidden = [
|
||||||
@@ -132,9 +134,9 @@ class Folder extends Model
|
|||||||
/**
|
/**
|
||||||
* Format deleted at date reformat
|
* 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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,7 +228,7 @@ class Folder extends Model
|
|||||||
parent::boot();
|
parent::boot();
|
||||||
|
|
||||||
static::creating(function ($model) {
|
static::creating(function ($model) {
|
||||||
$model->id = (string) Str::uuid();
|
$model->id = (string)Str::uuid();
|
||||||
});
|
});
|
||||||
|
|
||||||
static::deleting(function ($item) {
|
static::deleting(function ($item) {
|
||||||
|
|||||||
@@ -20,7 +20,11 @@ class ConvertFolderIntoTeamFolderController extends Controller
|
|||||||
Request $request,
|
Request $request,
|
||||||
Folder $folder
|
Folder $folder
|
||||||
): Response {
|
): Response {
|
||||||
$folder->update(['team_folder' => 1]);
|
|
||||||
|
$folder->update([
|
||||||
|
'team_folder' => 1,
|
||||||
|
'parent_id' => null,
|
||||||
|
]);
|
||||||
|
|
||||||
// Invite team members
|
// Invite team members
|
||||||
($this->inviteMembers)($request->input('members'), $folder);
|
($this->inviteMembers)($request->input('members'), $folder);
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ use Illuminate\Http\Response;
|
|||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Teams\DTO\CreateTeamFolderData;
|
use Domain\Teams\DTO\CreateTeamFolderData;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class TeamFoldersController extends Controller
|
class TeamFoldersController extends Controller
|
||||||
{
|
{
|
||||||
@@ -16,6 +17,22 @@ class TeamFoldersController extends Controller
|
|||||||
public InviteMembersIntoTeamFolderAction $inviteMembers,
|
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(
|
public function store(
|
||||||
Request $request,
|
Request $request,
|
||||||
): Response {
|
): Response {
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class TeamsTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->actingAs($user)
|
->actingAs($user)
|
||||||
->post("/api/teams/folders/convert/{$folder->id}", [
|
->post("/api/teams/convert/{$folder->id}", [
|
||||||
'members' => [
|
'members' => [
|
||||||
[
|
[
|
||||||
'email' => 'john@internal.com',
|
'email' => 'john@internal.com',
|
||||||
@@ -230,17 +230,26 @@ class TeamsTest extends TestCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* @test
|
||||||
*/
|
|
||||||
public function it_move_items_into_team_folder()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public function it_get_all_team_folders()
|
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,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user