Skip to content

Commit a530299

Browse files
author
miladimos
committed
add api routes, edit file controller
1 parent 9fe4c99 commit a530299

File tree

5 files changed

+147
-113
lines changed

5 files changed

+147
-113
lines changed

config/filemanager.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
*
1515
*/
1616
'routes' => [
17-
'prefix' => env('FILEMANAGER_ROUTE_PREFIX', 'file-manager'),
18-
17+
'prefix' => env('FILEMANAGER_ROUTE_PREFIX', 'filemanager'),
1918
'web' => [
2019
'middleware' => ['web', 'auth'], //Set to empty to disable middleware filter
2120
],

routes/filemanger-api.php

+24-30
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,30 @@
11
<?php
22

33
use Illuminate\Support\Facades\Route;
4-
use Miladimos\FileManager\Http\Controllers\BrowseController;
4+
use Miladimos\FileManager\Http\Controllers\DirectoryController;
5+
use Miladimos\FileManager\Http\Controllers\DownloadController;
6+
use Miladimos\FileManager\Http\Controllers\FileController;
57
use Miladimos\FileManager\Http\Controllers\FileGroupController;
68

7-
// explorer
8-
//Route::get('browser/index', [BrowseController::class, 'index']);
9-
//Route::post('browser/file', [BrowseController::class, 'uploadFiles']);
10-
//Route::delete('browser/file', [BrowseController::class, 'deleteFile']);
11-
//Route::post('browser/folder', [BrowseController::class, 'createFolder']);
12-
//Route::delete('browser/folder', [BrowseController::class, 'deleteFolder']);
13-
//
14-
//Route::post('browser/rename', [BrowseController::class, 'rename']);
15-
//Route::get('browser/directories', [BrowseController::class, 'allDirectories']);
16-
//Route::post('browser/move', [BrowseController::class, 'move']);
17-
18-
Route::get('/file-group', [FileGroupController::class, 'index']);
19-
Route::get('/file-group/{uuid}', [FileGroupController::class, 'show']);
20-
Route::put('/file-group', [FileGroupController::class, 'update']);
21-
Route::delete('/file-group/{uuid}', [FileGroupController::class, 'delete']);
22-
23-
// Route::get("/download/{file}", "DownloadController@download");
24-
25-
26-
//Route::post('/explorer/files', ['uses' => 'FileController@getUserFiles'])->name('explorer.files');
27-
//Route::post('/explorer/folders', ['uses' => 'FolderController@getUserFolders'])->name('explorer.folders');
28-
//Route::post('/explorer/folders/parent', ['uses' => 'FolderController@getParentFolderId'])->name('explorer.folder.parent');
29-
//Route::get('/explorer/files/download/{id?}', ['uses' => 'FileController@downloadFile'])->name('explorer.download');
30-
//Route::get('/explorer/files/delete/{id?}', ['uses' => 'FileController@deleteFile'])->name('explorer.delete');
31-
//Route::post('/explorer/folders/create', ['uses' => 'FolderController@createFolder'])->name('explorer.folder.create');
32-
//Route::post('/explorer/files/rename', ['uses' => 'FileController@renameFile'])->name('explorer.file.rename');
33-
//Route::post('/explorer/folders/rename', ['uses' => 'FolderController@renameFolder'])->name('explorer.folder.rename');
34-
//Route::post('/explorer/files/move', ['uses' => 'FileController@moveFile'])->name('explorer.file.move');
35-
//Route::post('/explorer/folders/get-breadcrumb', ['uses' => 'FolderController@getFolderBreadcrumb'])->name('explorer.folder.getBreadcrumb');
9+
10+
Route::apiResources([
11+
'file-groups' => FileGroupController::class,
12+
]);
13+
14+
Route::group(['as' => 'directories.'], function () {
15+
Route::post('directories', [DirectoryController::class, 'createDirectory'])->name('create');
16+
Route::delete('directories', [DirectoryController::class, 'deleteDirectories'])->name('delete');
17+
Route::post('directories/rename', [DirectoryController::class, 'renameDirectory'])->name('rename');
18+
});
19+
20+
Route::group(['as' => 'files.'], function () {
21+
Route::delete('files', [FileController::class, 'deleteFile'])->name('delete');
22+
Route::post('files/rename', [FileController::class, 'renameFile'])->name('rename');
23+
Route::post('files/move', [FileController::class, 'moveFile'])->name('move');
24+
});
25+
26+
Route::get("download/{file}", [DownloadController::class, 'download']);
27+
28+
//Route::post('/browser/folders/parent', ['uses' => 'FolderController@getParentFolderId'])->name('browser.folder.parent');
29+
//Route::post('/browser/folders/get-breadcrumb', ['uses' => 'FolderController@getFolderBreadcrumb'])->name('browser.folder.getBreadcrumb');
3630

src/Http/Controllers/FileController.php

+16-80
Original file line numberDiff line numberDiff line change
@@ -4,109 +4,45 @@
44
namespace Miladimos\FileManager\Http\Controllers;
55

66

7+
use Illuminate\Http\Request;
8+
use Miladimos\FileManager\Services\FileService;
9+
710
class FileController extends Controller
811
{
9-
public function deleteFile($id)
10-
{
11-
try {
12-
$file = File::where('id', $id)->first();
13-
14-
Storage::delete("uploads/" . $file->file_hash);
12+
private $fileService;
1513

16-
$file->forceDelete();
14+
public function __construct()
15+
{
16+
$this->fileService = new FileService();
17+
}
1718

18-
return response()->json(['msg' => 'File deleted.', 'status' => '200'], 200);
19-
} catch (\Exception $ex) {
20-
return response()->json(['msg' => $ex->getMessage(), 'status' => '500'], 500);
21-
}
19+
public function deleteFile($uuid)
20+
{
21+
//
2222
}
2323

2424
public function renameFile(Request $request)
2525
{
26-
$id = $request->input('fileId');
27-
$name = $request->input('fileName');
28-
29-
$ext = pathinfo($name, PATHINFO_EXTENSION);
30-
31-
$file = File::where('id', $id)->first();
32-
33-
$file->file_name = $name;
34-
$file->file_extension = $ext;
35-
$file->save();
36-
37-
return response()->json(['msg' => 'File renamed.', 'status' => '200'], 200);
26+
//
3827
}
3928

4029
public function moveFile(Request $request)
4130
{
42-
$folderId = $request->input('folderId');
43-
$fileId = $request->input('fileId');
44-
45-
$file = File::where('id', $fileId)->first();
46-
47-
$file->folder_id = $folderId;
48-
$file->save();
49-
50-
return response()->json(['msg' => 'File moved.', 'status' => '200'], 200);
31+
//
5132
}
5233

5334
public function getUserFiles(Request $request)
5435
{
55-
$folder = $request->input('folder');
56-
57-
// un-foldered files
58-
if ($folder == 0) {
59-
$files = File::where('folder_id', '0')->where('user_id', Auth::id())->orderBy('file_name', 'asc')->get();
60-
} else {
61-
$files = File::where('folder_id', $folder)->where('user_id', Auth::id())->orderBy('file_name', 'asc')->get();
62-
}
63-
64-
return $files->toJson();
36+
//
6537
}
6638

6739
public function deleteFiles(Request $request)
6840
{
69-
foreach ($request->input('files', []) as $key => $file) {
70-
Storage::delete($file);
71-
}
72-
73-
return json_encode(['result' => true]);
41+
//
7442
}
7543

7644
public function listAllFiles(Request $request)
7745
{
78-
$path = $request->input('path', '');
79-
$directoriesList = Storage::directories($path);
80-
$filesList = Storage::files($path);
81-
82-
$directories = [];
83-
$files = [];
84-
85-
foreach ($directoriesList as $key => $directory) {
86-
$directories[] = [
87-
'name' => last(explode("/", $directory)),
88-
'path' => $directory,
89-
'public_path' => Storage::url($directory),
90-
'size' => Storage::size($directory),
91-
'type' => 'directory',
92-
'last_modified' => \Carbon\Carbon::createFromTimestamp(Storage::lastModified($directory))->diffForHumans()
93-
];
94-
}
95-
96-
foreach ($filesList as $key => $file) {
97-
$files[] = [
98-
'name' => last(explode("/", $file)),
99-
'path' => $file,
100-
'public_path' => Storage::url($file),
101-
'size' => Storage::size($file),
102-
'type' => 'file',
103-
'last_modified' => \Carbon\Carbon::createFromTimestamp(Storage::lastModified($file))->diffForHumans()
104-
];
105-
}
106-
107-
return [
108-
'path' => $path,
109-
'directoriesAndFiles' => array_merge($directories, $files)
110-
];
46+
//
11147
}
11248
}

src/Providers/FileManagerServiceProvider.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,14 @@ private function registerRoutes()
8181
});
8282
}
8383

84-
private function routeConfiguration($uses = 'api')
84+
private function routeConfiguration()
8585
{
8686
$filemanager_api_version = 'v1';
8787

8888
return [
8989
'prefix' => config('filemanager.routes.api.api_prefix') . '/' . $filemanager_api_version . '/' . config('filemanager.routes.prefix'),
9090
'middleware' => config('filemanager.routes.api.middleware'),
91+
'as' => 'filemanager.'
9192
];
9293
}
9394
}

src/Services/FileService.php

+104
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Support\Collection;
99
use Illuminate\Support\Facades\Storage;
1010
use Illuminate\Support\Str;
11+
use Miladimos\FileManager\Models\File;
1112

1213

1314
// all of about files
@@ -192,7 +193,110 @@ public function fileModified($path)
192193
//
193194
// return $this->disk->delete($path);
194195
// }
196+
//
197+
// public function deleteFile($id)
198+
// {
199+
// try {
200+
// $file = File::where('id', $id)->first();
201+
//
202+
// Storage::delete("uploads/" . $file->file_hash);
203+
//
204+
// $file->forceDelete();
205+
//
206+
// return response()->json(['msg' => 'File deleted.', 'status' => '200'], 200);
207+
// } catch (\Exception $ex) {
208+
// return response()->json(['msg' => $ex->getMessage(), 'status' => '500'], 500);
209+
// }
210+
// }
195211

212+
// public function renameFile(Request $request)
213+
// {
214+
// $id = $request->input('fileId');
215+
// $name = $request->input('fileName');
216+
//
217+
// $ext = pathinfo($name, PATHINFO_EXTENSION);
218+
//
219+
// $file = File::where('id', $id)->first();
220+
//
221+
// $file->file_name = $name;
222+
// $file->file_extension = $ext;
223+
// $file->save();
224+
//
225+
// return response()->json(['msg' => 'File renamed.', 'status' => '200'], 200);
226+
// }
227+
//
228+
// public function moveFile(Request $request)
229+
// {
230+
// $folderId = $request->input('folderId');
231+
// $fileId = $request->input('fileId');
232+
//
233+
// $file = File::where('id', $fileId)->first();
234+
//
235+
// $file->folder_id = $folderId;
236+
// $file->save();
237+
//
238+
// return response()->json(['msg' => 'File moved.', 'status' => '200'], 200);
239+
// }
240+
//
241+
// public function getUserFiles(Request $request)
242+
// {
243+
// $folder = $request->input('folder');
244+
//
245+
// // un-foldered files
246+
// if ($folder == 0) {
247+
// $files = File::where('folder_id', '0')->where('user_id', Auth::id())->orderBy('file_name', 'asc')->get();
248+
// } else {
249+
// $files = File::where('folder_id', $folder)->where('user_id', Auth::id())->orderBy('file_name', 'asc')->get();
250+
// }
251+
//
252+
// return $files->toJson();
253+
// }
254+
//
255+
// public function deleteFiles(Request $request)
256+
// {
257+
// foreach ($request->input('files', []) as $key => $file) {
258+
// Storage::delete($file);
259+
// }
260+
//
261+
// return json_encode(['result' => true]);
262+
// }
263+
//
264+
// public function listAllFiles(Request $request)
265+
// {
266+
// $path = $request->input('path', '');
267+
// $directoriesList = Storage::directories($path);
268+
// $filesList = Storage::files($path);
269+
//
270+
// $directories = [];
271+
// $files = [];
272+
//
273+
// foreach ($directoriesList as $key => $directory) {
274+
// $directories[] = [
275+
// 'name' => last(explode("/", $directory)),
276+
// 'path' => $directory,
277+
// 'public_path' => Storage::url($directory),
278+
// 'size' => Storage::size($directory),
279+
// 'type' => 'directory',
280+
// 'last_modified' => \Carbon\Carbon::createFromTimestamp(Storage::lastModified($directory))->diffForHumans()
281+
// ];
282+
// }
283+
//
284+
// foreach ($filesList as $key => $file) {
285+
// $files[] = [
286+
// 'name' => last(explode("/", $file)),
287+
// 'path' => $file,
288+
// 'public_path' => Storage::url($file),
289+
// 'size' => Storage::size($file),
290+
// 'type' => 'file',
291+
// 'last_modified' => \Carbon\Carbon::createFromTimestamp(Storage::lastModified($file))->diffForHumans()
292+
// ];
293+
// }
294+
//
295+
// return [
296+
// 'path' => $path,
297+
// 'directoriesAndFiles' => array_merge($directories, $files)
298+
// ];
299+
// }
196300
public function uploadFiles(Request $request)
197301
{
198302
$request->validate([

0 commit comments

Comments
 (0)