Support renaming multiple files at once

This commit is contained in:
Dane Everitt 2020-07-11 16:00:30 -07:00
parent 43f8ec23b8
commit 2653321fc2
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
6 changed files with 35 additions and 29 deletions

View file

@ -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(

View file

@ -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',
];
}
}

View file

@ -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,
],
]