|
13 | 13 | use Pterodactyl\Transformers\Daemon\FileObjectTransformer; |
14 | 14 | use Pterodactyl\Http\Controllers\Api\Client\ClientApiController; |
15 | 15 | use Pterodactyl\Http\Requests\Api\Client\Servers\Files\CopyFileRequest; |
| 16 | +use Pterodactyl\Http\Requests\Api\Client\Servers\Files\PullFileRequest; |
16 | 17 | use Pterodactyl\Http\Requests\Api\Client\Servers\Files\ListFilesRequest; |
17 | 18 | use Pterodactyl\Http\Requests\Api\Client\Servers\Files\DeleteFileRequest; |
18 | 19 | use Pterodactyl\Http\Requests\Api\Client\Servers\Files\RenameFileRequest; |
@@ -143,10 +144,7 @@ public function download(GetFileContentsRequest $request, Server $server) |
143 | 144 | */ |
144 | 145 | public function write(WriteFileContentRequest $request, Server $server): JsonResponse |
145 | 146 | { |
146 | | - $this->fileRepository->setServer($server)->putContent( |
147 | | - $this->encode($request->get('file')), |
148 | | - $request->getContent() |
149 | | - ); |
| 147 | + $this->fileRepository->setServer($server)->putContent($request->get('file'), $request->getContent()); |
150 | 148 |
|
151 | 149 | return new JsonResponse([], Response::HTTP_NO_CONTENT); |
152 | 150 | } |
@@ -284,16 +282,18 @@ public function chmod(ChmodFilesRequest $request, Server $server): JsonResponse |
284 | 282 | } |
285 | 283 |
|
286 | 284 | /** |
287 | | - * Encodes a given file name & path in a format that should work for a good majority |
288 | | - * of file names without too much confusing logic. |
| 285 | + * Requests that a file be downloaded from a remote location by Wings. |
| 286 | + * |
| 287 | + * @param $request |
| 288 | + * @param \Pterodactyl\Models\Server $server |
| 289 | + * @return \Illuminate\Http\JsonResponse |
289 | 290 | * |
290 | | - * @param string $path |
291 | | - * @return string |
| 291 | + * @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException |
292 | 292 | */ |
293 | | - private function encode(string $path): string |
| 293 | + public function pull(PullFileRequest $request, Server $server): JsonResponse |
294 | 294 | { |
295 | | - return Collection::make(explode('/', rawurldecode($path)))->map(function ($value) { |
296 | | - return rawurlencode($value); |
297 | | - })->join('/'); |
| 295 | + $this->fileRepository->setServer($server)->pull($request->input('url'), $request->input('directory')); |
| 296 | + |
| 297 | + return new JsonResponse([], Response::HTTP_NO_CONTENT); |
298 | 298 | } |
299 | 299 | } |
0 commit comments