|
@@ -7,6 +7,7 @@ use App\Http\Requests\API\Folder\CreateRequest;
|
|
|
use App\Http\Requests\API\Folder\UpdateRequest;
|
|
|
use App\Http\Resources\API\FolderDetailResource;
|
|
|
use App\Models\Enums\FolderObjectType;
|
|
|
+use App\Models\File;
|
|
|
use App\Models\Folder;
|
|
|
use App\Models\Library;
|
|
|
use Illuminate\Http\Request;
|
|
@@ -220,4 +221,35 @@ class FolderController extends Controller
|
|
|
|
|
|
return $this->noContent();
|
|
|
}
|
|
|
+
|
|
|
+ public function open(Request $request)
|
|
|
+ {
|
|
|
+ $folderId = $request->get("id", 0);
|
|
|
+ if ($folderId > 0) {
|
|
|
+ $folder = Folder::query()->findOrFail($folderId);
|
|
|
+ $objectType = $folder->object_type;
|
|
|
+ $objectId = $folder->object_id;
|
|
|
+ } else {
|
|
|
+ $objectType = $request->get("object_type");
|
|
|
+ $objectId = $request->get("object_id");
|
|
|
+ }
|
|
|
+
|
|
|
+ $folderObjectType = FolderObjectType::from($request->object_type);
|
|
|
+
|
|
|
+ $folderObjectType->modelBuilderAllowed()->findOrFail($request->object_id);
|
|
|
+
|
|
|
+ $objectWhere = ['object_type' => $objectType, 'object_id' => $objectId,];
|
|
|
+ $folders = Folder::query()
|
|
|
+ ->where($objectWhere)
|
|
|
+ ->when($folderId, fn($query) => $query->where("parent_id", $folderId))
|
|
|
+ ->when(! $folderId, fn($query) => $query->where("parent_id", 0))
|
|
|
+ ->get(['id', 'name']);
|
|
|
+
|
|
|
+
|
|
|
+ return $this->success([
|
|
|
+ 'data' => [
|
|
|
+ 'folders' => $folders,
|
|
|
+ ]
|
|
|
+ ]);
|
|
|
+ }
|
|
|
}
|