From 8c83ec0a80a2ff1deaaac5b61fd543da3b81d49f Mon Sep 17 00:00:00 2001 From: reza Date: Wed, 24 Jun 2020 22:24:36 +0430 Subject: [PATCH] - removes the App folder / namespace - adds guarded = ['id'] to model - changes `web` middleware to `api` - adds type to props in structure migrations - updates relation - updates codacy badge --- README.md | 2 +- composer.json | 28 +++++++++---------- {src/config => config}/files.php | 0 .../2018_08_25_100000_create_files_table.php | 0 ...8_25_101000_create_structure_for_files.php | 6 ++-- ...2018_08_25_102000_create_uploads_table.php | 0 ...25_103000_create_structure_for_uploads.php | 4 +-- {src/routes => routes}/api.php | 6 ++-- {src/routes => routes}/app/files.php | 0 {src/routes => routes}/app/uploads.php | 0 src/AppServiceProvider.php | 21 +++++++------- src/AuthServiceProvider.php | 8 +++--- src/{App => }/Contracts/Attachable.php | 4 +-- .../Contracts/AuthorizesFileAccess.php | 4 +-- src/DynamicRelations/Uploads.php | 20 +++++++++++++ src/{App => }/Exceptions/File.php | 4 +-- src/{App => }/Facades/FileBrowser.php | 2 +- src/FileServiceProvider.php | 2 +- .../Http/Controllers/File/Destroy.php | 4 +-- .../Http/Controllers/File/Download.php | 4 +-- src/{App => }/Http/Controllers/File/Index.php | 4 +-- src/{App => }/Http/Controllers/File/Link.php | 4 +-- src/{App => }/Http/Controllers/File/Share.php | 4 +-- src/{App => }/Http/Controllers/File/Show.php | 4 +-- .../Http/Controllers/Upload/Destroy.php | 4 +-- .../Http/Controllers/Upload/Store.php | 4 +-- src/{App => }/Http/Resources/Collection.php | 4 +-- src/{App => }/Http/Resources/File.php | 4 +-- src/{App => }/Http/Responses/Files.php | 8 +++--- src/{App => }/Models/File.php | 10 +++---- src/{App => }/Models/Upload.php | 14 +++++----- src/{App => }/Policies/File.php | 8 +++--- src/{App => }/Policies/Upload.php | 6 ++-- src/{App => }/Services/FileBrowser.php | 4 +-- src/{App => }/Services/FileValidator.php | 4 +-- src/{App => }/Services/Files.php | 6 ++-- src/{App => }/Services/ImageProcessor.php | 4 +-- src/{App => }/Services/UploadManager.php | 10 +++---- .../Services/UploadedFileValidator.php | 4 +-- src/{App => }/Traits/FilePolicies.php | 4 +-- src/{App => }/Traits/HasFile.php | 8 +++--- src/{App => }/Traits/Uploads.php | 4 +-- tests/features/FileManagerTest.php | 10 +++---- 43 files changed, 137 insertions(+), 118 deletions(-) rename {src/config => config}/files.php (100%) rename {src/database => database}/migrations/2018_08_25_100000_create_files_table.php (100%) rename {src/database => database}/migrations/2018_08_25_101000_create_structure_for_files.php (86%) rename {src/database => database}/migrations/2018_08_25_102000_create_uploads_table.php (100%) rename {src/database => database}/migrations/2018_08_25_103000_create_structure_for_uploads.php (76%) rename {src/routes => routes}/api.php (70%) rename {src/routes => routes}/app/files.php (100%) rename {src/routes => routes}/app/uploads.php (100%) rename src/{App => }/Contracts/Attachable.php (90%) rename src/{App => }/Contracts/AuthorizesFileAccess.php (71%) create mode 100644 src/DynamicRelations/Uploads.php rename src/{App => }/Exceptions/File.php (90%) rename src/{App => }/Facades/FileBrowser.php (81%) rename src/{App => }/Http/Controllers/File/Destroy.php (76%) rename src/{App => }/Http/Controllers/File/Download.php (76%) rename src/{App => }/Http/Controllers/File/Index.php (59%) rename src/{App => }/Http/Controllers/File/Link.php (77%) rename src/{App => }/Http/Controllers/File/Share.php (65%) rename src/{App => }/Http/Controllers/File/Show.php (76%) rename src/{App => }/Http/Controllers/Upload/Destroy.php (75%) rename src/{App => }/Http/Controllers/Upload/Store.php (70%) rename src/{App => }/Http/Resources/Collection.php (90%) rename src/{App => }/Http/Resources/File.php (88%) rename src/{App => }/Http/Responses/Files.php (77%) rename src/{App => }/Models/File.php (86%) rename src/{App => }/Models/Upload.php (51%) rename src/{App => }/Policies/File.php (84%) rename src/{App => }/Policies/Upload.php (84%) rename src/{App => }/Services/FileBrowser.php (94%) rename src/{App => }/Services/FileValidator.php (93%) rename src/{App => }/Services/Files.php (97%) rename src/{App => }/Services/ImageProcessor.php (91%) rename src/{App => }/Services/UploadManager.php (86%) rename src/{App => }/Services/UploadedFileValidator.php (81%) rename src/{App => }/Traits/FilePolicies.php (81%) rename src/{App => }/Traits/HasFile.php (94%) rename src/{App => }/Traits/Uploads.php (61%) diff --git a/README.md b/README.md index 03eb754..a2bca70 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # File Manager -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/6e342eff10f24db5b89be5fe203e424d)](https://www.codacy.com/app/laravel-enso/files?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/files&utm_campaign=Badge_Grade) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0ad3f6e21d9e42279dedd5432602891b)](https://www.codacy.com/gh/laravel-enso/files?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/files&utm_campaign=Badge_Grade) [![StyleCI](https://github.styleci.io/repos/85492361/shield?branch=master)](https://github.styleci.io/repos/85492361) [![License](https://poser.pugx.org/laravel-enso/datatable/license)](https://packagist.org/packages/laravel-enso/datatable) [![Total Downloads](https://poser.pugx.org/laravel-enso/files/downloads)](https://packagist.org/packages/laravel-enso/files) diff --git a/composer.json b/composer.json index 625006a..1bd57d1 100644 --- a/composer.json +++ b/composer.json @@ -10,21 +10,19 @@ "homepage": "https://github.com/laravel-enso/files", "type": "library", "license": "MIT", - "authors": [ - { - "name": "Adrian Ocneanu", - "email": "aocneanu@gmail.com", - "homepage": "https://laravel-enso.com", - "role": "Developer" - } - ], + "authors": [{ + "name": "Adrian Ocneanu", + "email": "aocneanu@gmail.com", + "homepage": "https://laravel-enso.com", + "role": "Developer" + }], "require": { "php": ">=7.4.0", - "laravel-enso/core": "4.8.*", - "laravel-enso/helpers": "1.15.*", - "laravel-enso/image-transformer": "1.6.*", - "laravel-enso/migrator": "1.1.*", - "laravel-enso/track-who": "1.9.*" + "laravel-enso/core": "^5.0", + "laravel-enso/helpers": "^2.0", + "laravel-enso/image-transformer": "^2.0", + "laravel-enso/migrator": "^2.0", + "laravel-enso/track-who": "^2.0" }, "autoload": { "psr-4": { @@ -40,8 +38,8 @@ "LaravelEnso\\Files\\UploadServiceProvider" ], "aliases": { - "FileBrowser": "LaravelEnso\\Files\\App\\Facades\\FileBrowser" + "FileBrowser": "LaravelEnso\\Files\\Facades\\FileBrowser" } } } -} \ No newline at end of file +} diff --git a/src/config/files.php b/config/files.php similarity index 100% rename from src/config/files.php rename to config/files.php diff --git a/src/database/migrations/2018_08_25_100000_create_files_table.php b/database/migrations/2018_08_25_100000_create_files_table.php similarity index 100% rename from src/database/migrations/2018_08_25_100000_create_files_table.php rename to database/migrations/2018_08_25_100000_create_files_table.php diff --git a/src/database/migrations/2018_08_25_101000_create_structure_for_files.php b/database/migrations/2018_08_25_101000_create_structure_for_files.php similarity index 86% rename from src/database/migrations/2018_08_25_101000_create_structure_for_files.php rename to database/migrations/2018_08_25_101000_create_structure_for_files.php index b32e014..3e38ea1 100644 --- a/src/database/migrations/2018_08_25_101000_create_structure_for_files.php +++ b/database/migrations/2018_08_25_101000_create_structure_for_files.php @@ -1,10 +1,10 @@ 'core.files.index', 'description' => 'List files', 'is_default' => true], ['name' => 'core.files.link', 'description' => 'Get file download temporary link', 'is_default' => true], ['name' => 'core.files.show', 'description' => 'Open file in browser', 'is_default' => true], @@ -12,7 +12,7 @@ class CreateStructureForFiles extends Migration ['name' => 'core.files.destroy', 'description' => 'Delete file', 'is_default' => true], ]; - protected $menu = [ + protected array $menu = [ 'name' => 'Files', 'icon' => 'folder-open', 'route' => 'core.files.index', 'order_index' => 255, 'has_children' => false, ]; } diff --git a/src/database/migrations/2018_08_25_102000_create_uploads_table.php b/database/migrations/2018_08_25_102000_create_uploads_table.php similarity index 100% rename from src/database/migrations/2018_08_25_102000_create_uploads_table.php rename to database/migrations/2018_08_25_102000_create_uploads_table.php diff --git a/src/database/migrations/2018_08_25_103000_create_structure_for_uploads.php b/database/migrations/2018_08_25_103000_create_structure_for_uploads.php similarity index 76% rename from src/database/migrations/2018_08_25_103000_create_structure_for_uploads.php rename to database/migrations/2018_08_25_103000_create_structure_for_uploads.php index 04610c2..d8e5ec2 100644 --- a/src/database/migrations/2018_08_25_103000_create_structure_for_uploads.php +++ b/database/migrations/2018_08_25_103000_create_structure_for_uploads.php @@ -1,10 +1,10 @@ 'core.uploads.store', 'description' => 'Upload file', 'is_default' => true], ['name' => 'core.uploads.destroy', 'description' => 'Delete upload', 'is_default' => true], ]; diff --git a/src/routes/api.php b/routes/api.php similarity index 70% rename from src/routes/api.php rename to routes/api.php index ec8fd46..476d8dd 100644 --- a/src/routes/api.php +++ b/routes/api.php @@ -2,8 +2,8 @@ use Illuminate\Support\Facades\Route; -Route::middleware(['web', 'auth', 'core']) - ->namespace('LaravelEnso\Files\App\Http\Controllers') +Route::middleware(['api', 'auth', 'core']) + ->namespace('LaravelEnso\Files\Http\Controllers') ->prefix('api/core') ->as('core.') ->group(function () { @@ -12,7 +12,7 @@ }); Route::middleware(['signed', 'bindings']) - ->namespace('LaravelEnso\Files\App\Http\Controllers\File') + ->namespace('LaravelEnso\Files\Http\Controllers\File') ->prefix('api/core/files') ->as('core.files.') ->group(function () { diff --git a/src/routes/app/files.php b/routes/app/files.php similarity index 100% rename from src/routes/app/files.php rename to routes/app/files.php diff --git a/src/routes/app/uploads.php b/routes/app/uploads.php similarity index 100% rename from src/routes/app/uploads.php rename to routes/app/uploads.php diff --git a/src/AppServiceProvider.php b/src/AppServiceProvider.php index 0260f52..a346fc1 100644 --- a/src/AppServiceProvider.php +++ b/src/AppServiceProvider.php @@ -2,10 +2,12 @@ namespace LaravelEnso\Files; -use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Support\ServiceProvider; -use LaravelEnso\Files\App\Models\Upload; -use LaravelEnso\Files\App\Services\FileBrowser; +use LaravelEnso\Core\Models\User; +use LaravelEnso\DynamicMethods\Services\Methods; +use LaravelEnso\Files\DynamicsRelations\Uploads; +use LaravelEnso\Files\Models\Upload; +use LaravelEnso\Files\Services\FileBrowser; class AppServiceProvider extends ServiceProvider { @@ -22,20 +24,19 @@ public function boot() private function load() { - $this->loadRoutesFrom(__DIR__.'/routes/api.php'); + $this->loadRoutesFrom(__DIR__.'/../routes/api.php'); - $this->mergeConfigFrom(__DIR__.'/config/files.php', 'enso.files'); + $this->mergeConfigFrom(__DIR__.'/../config/files.php', 'enso.files'); - $this->loadMigrationsFrom(__DIR__.'/database/migrations'); + $this->loadMigrationsFrom(__DIR__.'/../database/migrations'); return $this; } private function mapMorphs() { - Relation::morphMap([ - Upload::morphMapKey() => Upload::class, - ]); + Upload::morphMap(); + Methods::bind(User::class, [Uploads::class]); return $this; } @@ -43,7 +44,7 @@ private function mapMorphs() private function publish() { $this->publishes([ - __DIR__.'/config' => config_path('enso'), + __DIR__.'/../config' => config_path('enso'), ], ['files-config', 'enso-config']); $this->publishes([ diff --git a/src/AuthServiceProvider.php b/src/AuthServiceProvider.php index 5b43d27..86895aa 100644 --- a/src/AuthServiceProvider.php +++ b/src/AuthServiceProvider.php @@ -3,10 +3,10 @@ namespace LaravelEnso\Files; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; -use LaravelEnso\Files\App\Models\File; -use LaravelEnso\Files\App\Models\Upload; -use LaravelEnso\Files\App\Policies\File as FilePolicy; -use LaravelEnso\Files\App\Policies\Upload as UploadPolicy; +use LaravelEnso\Files\Models\File; +use LaravelEnso\Files\Models\Upload; +use LaravelEnso\Files\Policies\File as FilePolicy; +use LaravelEnso\Files\Policies\Upload as UploadPolicy; class AuthServiceProvider extends ServiceProvider { diff --git a/src/App/Contracts/Attachable.php b/src/Contracts/Attachable.php similarity index 90% rename from src/App/Contracts/Attachable.php rename to src/Contracts/Attachable.php index 606d5f1..e1879fe 100644 --- a/src/App/Contracts/Attachable.php +++ b/src/Contracts/Attachable.php @@ -1,11 +1,11 @@ $this->hasMany(Upload::class, 'created_by'); + } +} diff --git a/src/App/Exceptions/File.php b/src/Exceptions/File.php similarity index 90% rename from src/App/Exceptions/File.php rename to src/Exceptions/File.php index d3a7ebf..d77c535 100644 --- a/src/App/Exceptions/File.php +++ b/src/Exceptions/File.php @@ -1,8 +1,8 @@ models->search(fn ($source) => $source['model'] === $model); } - public function model($folder): string + public function model($folder): ?string { return $this->models->has($folder) ? $this->models->get($folder)['model'] diff --git a/src/App/Services/FileValidator.php b/src/Services/FileValidator.php similarity index 93% rename from src/App/Services/FileValidator.php rename to src/Services/FileValidator.php index 5cdbfb1..d66c053 100644 --- a/src/App/Services/FileValidator.php +++ b/src/Services/FileValidator.php @@ -1,10 +1,10 @@