Support renaming multiple files at once
This commit is contained in:
parent
43f8ec23b8
commit
2653321fc2
6 changed files with 35 additions and 29 deletions
|
@ -67,7 +67,7 @@ class FileController extends ClientApiController
|
|||
*
|
||||
* @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException
|
||||
*/
|
||||
public function listDirectory(ListFilesRequest $request, Server $server): array
|
||||
public function directory(ListFilesRequest $request, Server $server): array
|
||||
{
|
||||
try {
|
||||
$contents = $this->fileRepository
|
||||
|
@ -90,7 +90,7 @@ class FileController extends ClientApiController
|
|||
* @return \Illuminate\Http\Response
|
||||
* @throws \Pterodactyl\Exceptions\Http\Server\FileSizeTooLargeException
|
||||
*/
|
||||
public function getFileContents(GetFileContentsRequest $request, Server $server): Response
|
||||
public function contents(GetFileContentsRequest $request, Server $server): Response
|
||||
{
|
||||
return new Response(
|
||||
$this->fileRepository->setServer($server)->getContent(
|
||||
|
@ -140,7 +140,7 @@ class FileController extends ClientApiController
|
|||
* @param \Pterodactyl\Models\Server $server
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function writeFileContents(WriteFileContentRequest $request, Server $server): JsonResponse
|
||||
public function write(WriteFileContentRequest $request, Server $server): JsonResponse
|
||||
{
|
||||
$this->fileRepository->setServer($server)->putContent(
|
||||
$request->get('file'),
|
||||
|
@ -157,7 +157,7 @@ class FileController extends ClientApiController
|
|||
* @param \Pterodactyl\Models\Server $server
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function createFolder(CreateFolderRequest $request, Server $server): JsonResponse
|
||||
public function create(CreateFolderRequest $request, Server $server): JsonResponse
|
||||
{
|
||||
$this->fileRepository
|
||||
->setServer($server)
|
||||
|
@ -173,11 +173,11 @@ class FileController extends ClientApiController
|
|||
* @param \Pterodactyl\Models\Server $server
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function renameFile(RenameFileRequest $request, Server $server): JsonResponse
|
||||
public function rename(RenameFileRequest $request, Server $server): JsonResponse
|
||||
{
|
||||
$this->fileRepository
|
||||
->setServer($server)
|
||||
->renameFile($request->input('rename_from'), $request->input('rename_to'));
|
||||
->renameFiles($request->input('root'), $request->input('files'));
|
||||
|
||||
return new JsonResponse([], Response::HTTP_NO_CONTENT);
|
||||
}
|
||||
|
@ -189,7 +189,7 @@ class FileController extends ClientApiController
|
|||
* @param \Pterodactyl\Models\Server $server
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function copyFile(CopyFileRequest $request, Server $server): JsonResponse
|
||||
public function copy(CopyFileRequest $request, Server $server): JsonResponse
|
||||
{
|
||||
$this->fileRepository
|
||||
->setServer($server)
|
||||
|
@ -203,7 +203,7 @@ class FileController extends ClientApiController
|
|||
* @param \Pterodactyl\Models\Server $server
|
||||
* @return array
|
||||
*/
|
||||
public function compressFiles(CompressFilesRequest $request, Server $server): array
|
||||
public function compress(CompressFilesRequest $request, Server $server): array
|
||||
{
|
||||
$file = $this->fileRepository->setServer($server)
|
||||
->compressFiles(
|
||||
|
|
|
@ -25,8 +25,11 @@ class RenameFileRequest extends ClientApiRequest implements ClientPermissionsReq
|
|||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'rename_from' => 'string|required',
|
||||
'rename_to' => 'string|required',
|
||||
'root' => 'required|nullable|string',
|
||||
'files' => 'required|array',
|
||||
'files.*' => 'array',
|
||||
'files.*.to' => 'required|string',
|
||||
'files.*.from' => 'required|string',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -109,11 +109,11 @@ class DaemonFileRepository extends DaemonRepository
|
|||
/**
|
||||
* Renames or moves a file on the remote machine.
|
||||
*
|
||||
* @param string $from
|
||||
* @param string $to
|
||||
* @param string|null $root
|
||||
* @param array $files
|
||||
* @return \Psr\Http\Message\ResponseInterface
|
||||
*/
|
||||
public function renameFile(string $from, string $to): ResponseInterface
|
||||
public function renameFiles(?string $root, array $files): ResponseInterface
|
||||
{
|
||||
Assert::isInstanceOf($this->server, Server::class);
|
||||
|
||||
|
@ -121,8 +121,8 @@ class DaemonFileRepository extends DaemonRepository
|
|||
sprintf('/api/servers/%s/files/rename', $this->server->uuid),
|
||||
[
|
||||
'json' => [
|
||||
'rename_from' => urldecode($from),
|
||||
'rename_to' => urldecode($to),
|
||||
'root' => $root ?? '/',
|
||||
'files' => $files,
|
||||
],
|
||||
]
|
||||
);
|
||||
|
@ -163,7 +163,7 @@ class DaemonFileRepository extends DaemonRepository
|
|||
sprintf('/api/servers/%s/files/delete', $this->server->uuid),
|
||||
[
|
||||
'json' => [
|
||||
'root' => $root,
|
||||
'root' => $root ?? '/',
|
||||
'files' => $files,
|
||||
],
|
||||
]
|
||||
|
|
Reference in a new issue