Handle mass actions for file deletion
This commit is contained in:
parent
82bc9e617b
commit
93cab68cc3
9 changed files with 147 additions and 31 deletions
|
@ -216,7 +216,7 @@ class FileController extends ClientApiController
|
|||
}
|
||||
|
||||
/**
|
||||
* Deletes a file or folder from the server.
|
||||
* Deletes files or folders for the server in the given root directory.
|
||||
*
|
||||
* @param \Pterodactyl\Http\Requests\Api\Client\Servers\Files\DeleteFileRequest $request
|
||||
* @param \Pterodactyl\Models\Server $server
|
||||
|
@ -224,9 +224,10 @@ class FileController extends ClientApiController
|
|||
*/
|
||||
public function delete(DeleteFileRequest $request, Server $server): JsonResponse
|
||||
{
|
||||
$this->fileRepository
|
||||
->setServer($server)
|
||||
->deleteFile($request->input('location'));
|
||||
$this->fileRepository->setServer($server)
|
||||
->deleteFiles(
|
||||
$request->input('root'), $request->input('files')
|
||||
);
|
||||
|
||||
return new JsonResponse([], Response::HTTP_NO_CONTENT);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,9 @@ class DeleteFileRequest extends ClientApiRequest implements ClientPermissionsReq
|
|||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'location' => 'required|string',
|
||||
'root' => 'required|nullable|string',
|
||||
'files' => 'required|array',
|
||||
'files.*' => 'string',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -151,10 +151,11 @@ class DaemonFileRepository extends DaemonRepository
|
|||
/**
|
||||
* Delete a file or folder for the server.
|
||||
*
|
||||
* @param string $location
|
||||
* @param string|null $root
|
||||
* @param array $files
|
||||
* @return \Psr\Http\Message\ResponseInterface
|
||||
*/
|
||||
public function deleteFile(string $location): ResponseInterface
|
||||
public function deleteFiles(?string $root, array $files): ResponseInterface
|
||||
{
|
||||
Assert::isInstanceOf($this->server, Server::class);
|
||||
|
||||
|
@ -162,7 +163,8 @@ class DaemonFileRepository extends DaemonRepository
|
|||
sprintf('/api/servers/%s/files/delete', $this->server->uuid),
|
||||
[
|
||||
'json' => [
|
||||
'location' => $location,
|
||||
'root' => $root,
|
||||
'files' => $files,
|
||||
],
|
||||
]
|
||||
);
|
||||
|
|
Reference in a new issue