mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 16:22:14 +00:00
added folder resource
This commit is contained in:
@@ -48,7 +48,6 @@ class Folder extends Model
|
|||||||
protected $appends = [
|
protected $appends = [
|
||||||
'items',
|
'items',
|
||||||
'trashed_items',
|
'trashed_items',
|
||||||
'type',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
@@ -74,11 +73,6 @@ class Folder extends Model
|
|||||||
return FolderFactory::new();
|
return FolderFactory::new();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTypeAttribute(): string
|
|
||||||
{
|
|
||||||
return 'folder';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Index folder
|
* Index folder
|
||||||
*/
|
*/
|
||||||
@@ -122,17 +116,6 @@ class Folder extends Model
|
|||||||
return $folders + $files;
|
return $folders + $files;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Format created at date reformat
|
|
||||||
*/
|
|
||||||
public function getCreatedAtAttribute(): string
|
|
||||||
{
|
|
||||||
return format_date(
|
|
||||||
set_time_by_user_timezone($this->attributes['created_at']),
|
|
||||||
__t('time')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Format deleted at date reformat
|
* Format deleted at date reformat
|
||||||
*/
|
*/
|
||||||
|
|||||||
16
src/Domain/Folders/Resources/FolderCollection.php
Normal file
16
src/Domain/Folders/Resources/FolderCollection.php
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
namespace Domain\Folders\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||||
|
|
||||||
|
class FolderCollection extends ResourceCollection
|
||||||
|
{
|
||||||
|
public $collects = FolderResource::class;
|
||||||
|
|
||||||
|
public function toArray($request): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'data' => $this->collection,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
57
src/Domain/Folders/Resources/FolderResource.php
Normal file
57
src/Domain/Folders/Resources/FolderResource.php
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Domain\Folders\Resources;
|
||||||
|
|
||||||
|
use Domain\Teams\Resources\TeamInvitationsCollection;
|
||||||
|
use Domain\Teams\Resources\TeamMembersCollection;
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class FolderResource extends JsonResource
|
||||||
|
{
|
||||||
|
public function toArray($request): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'data' => [
|
||||||
|
'id' => $this->id,
|
||||||
|
'type' => 'folder',
|
||||||
|
'attributes' => [
|
||||||
|
'name' => $this->name,
|
||||||
|
'color' => $this->color,
|
||||||
|
'emoji' => $this->emoji,
|
||||||
|
'isTeamFolder' => $this->team_folder,
|
||||||
|
'items' => $this->items,
|
||||||
|
'trashed_items' => $this->trashed_items,
|
||||||
|
'updated_at' => format_date(
|
||||||
|
set_time_by_user_timezone($this->updated_at), __t('time')
|
||||||
|
),
|
||||||
|
'created_at' => format_date(
|
||||||
|
set_time_by_user_timezone($this->created_at), __t('time')
|
||||||
|
),
|
||||||
|
],
|
||||||
|
'relationships' => [
|
||||||
|
$this->mergeWhen($this->teamMembers, fn () => [
|
||||||
|
'members' => new TeamMembersCollection($this->teamMembers),
|
||||||
|
]),
|
||||||
|
$this->mergeWhen($this->teamInvitations, fn () => [
|
||||||
|
'invitations' => new TeamInvitationsCollection($this->teamInvitations),
|
||||||
|
]),
|
||||||
|
$this->mergeWhen($this->shared, fn () => [
|
||||||
|
'shared' => [
|
||||||
|
'data' => [
|
||||||
|
'id' => $this->shared->id,
|
||||||
|
'type' => 'shared',
|
||||||
|
'attributes' => [
|
||||||
|
'expire_in' => $this->shared->expire_in,
|
||||||
|
'link' => $this->shared->link,
|
||||||
|
'permission' => $this->shared->permission,
|
||||||
|
'protected' => $this->shared->protected,
|
||||||
|
'token' => $this->shared->token,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,8 +5,8 @@ use Illuminate\Http\Response;
|
|||||||
use Domain\Settings\Models\Setting;
|
use Domain\Settings\Models\Setting;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Localization\Models\Language;
|
use Domain\Localization\Models\Language;
|
||||||
use Domain\Localization\Resources\LanguageResource;
|
use Domain\Teams\Resources\LanguageResource;
|
||||||
use Domain\Localization\Resources\LanguageCollection;
|
use Domain\Teams\Resources\LanguageCollection;
|
||||||
use Domain\Localization\Requests\CreateLanguageRequest;
|
use Domain\Localization\Requests\CreateLanguageRequest;
|
||||||
use Domain\Localization\Requests\UpdateLanguageRequest;
|
use Domain\Localization\Requests\UpdateLanguageRequest;
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
namespace Domain\Teams\Controllers;
|
namespace Domain\Teams\Controllers;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
use Domain\Folders\Resources\FolderCollection;
|
||||||
use Domain\Teams\Requests\CreateTeamFolderRequest;
|
use Domain\Teams\Requests\CreateTeamFolderRequest;
|
||||||
use Domain\Teams\Requests\UpdateTeamFolderMembersRequest;
|
use Domain\Teams\Requests\UpdateTeamFolderMembersRequest;
|
||||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
@@ -50,6 +51,8 @@ class TeamFoldersController extends Controller
|
|||||||
->get();
|
->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return new FolderCollection($folders);
|
||||||
|
|
||||||
// Collect folders and files to single array
|
// Collect folders and files to single array
|
||||||
return [
|
return [
|
||||||
'content' => collect([$folders, $files])->collapse(),
|
'content' => collect([$folders, $files])->collapse(),
|
||||||
|
|||||||
23
src/Domain/Teams/Resources/TeamInvitationResource.php
Normal file
23
src/Domain/Teams/Resources/TeamInvitationResource.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Domain\Teams\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class TeamInvitationResource extends JsonResource
|
||||||
|
{
|
||||||
|
public function toArray($request): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'data' => [
|
||||||
|
'id' => $this->id,
|
||||||
|
'type' => 'invitation',
|
||||||
|
'attributes' => [
|
||||||
|
'email' => $this->email,
|
||||||
|
'status' => $this->status,
|
||||||
|
'permission' => $this->permission,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
16
src/Domain/Teams/Resources/TeamInvitationsCollection.php
Normal file
16
src/Domain/Teams/Resources/TeamInvitationsCollection.php
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
namespace Domain\Teams\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||||
|
|
||||||
|
class TeamInvitationsCollection extends ResourceCollection
|
||||||
|
{
|
||||||
|
public $collects = TeamInvitationResource::class;
|
||||||
|
|
||||||
|
public function toArray($request): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'data' => $this->collection,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
24
src/Domain/Teams/Resources/TeamMemberResource.php
Normal file
24
src/Domain/Teams/Resources/TeamMemberResource.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Domain\Teams\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class TeamMemberResource extends JsonResource
|
||||||
|
{
|
||||||
|
public function toArray($request): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'data' => [
|
||||||
|
'id' => $this->id,
|
||||||
|
'type' => 'member',
|
||||||
|
'attributes' => [
|
||||||
|
'email' => $this->email,
|
||||||
|
'name' => $this->settings->name,
|
||||||
|
'avatar' => $this->settings->avatar,
|
||||||
|
'permission' => $this->pivot->permission,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
16
src/Domain/Teams/Resources/TeamMembersCollection.php
Normal file
16
src/Domain/Teams/Resources/TeamMembersCollection.php
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
namespace Domain\Teams\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||||
|
|
||||||
|
class TeamMembersCollection extends ResourceCollection
|
||||||
|
{
|
||||||
|
public $collects = TeamMemberResource::class;
|
||||||
|
|
||||||
|
public function toArray($request): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'data' => $this->collection,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user