namespaces refactoring part 3

This commit is contained in:
Peter Papp
2021-07-19 13:40:26 +02:00
parent 54dc57fcbf
commit 29d1b68dd5
26 changed files with 126 additions and 65 deletions

File diff suppressed because one or more lines are too long

12
composer.lock generated
View File

@@ -5196,16 +5196,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "9.5.6", "version": "9.5.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "fb9b8333f14e3dce976a60ef6a7e05c7c7ed8bfb" "reference": "d0dc8b6999c937616df4fb046792004b33fd31c5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fb9b8333f14e3dce976a60ef6a7e05c7c7ed8bfb", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d0dc8b6999c937616df4fb046792004b33fd31c5",
"reference": "fb9b8333f14e3dce976a60ef6a7e05c7c7ed8bfb", "reference": "d0dc8b6999c937616df4fb046792004b33fd31c5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5283,7 +5283,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.6" "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.7"
}, },
"funding": [ "funding": [
{ {
@@ -5295,7 +5295,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-06-23T05:14:38+00:00" "time": "2021-07-19T06:14:47+00:00"
}, },
{ {
"name": "pragmarx/google2fa", "name": "pragmarx/google2fa",

View File

@@ -67,7 +67,7 @@ return [
'providers' => [ 'providers' => [
'users' => [ 'users' => [
'driver' => 'eloquent', 'driver' => 'eloquent',
'model' => Domain\Traffic\Models\User::class, 'model' => App\Users\Models\User::class,
], ],
// 'users' => [ // 'users' => [

View File

@@ -56,7 +56,7 @@ return [
| |
*/ */
'model' => env('CASHIER_MODEL', Domain\Traffic\Models\User::class), 'model' => env('CASHIER_MODEL', App\Users\Models\User::class),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

45
config/sanctum.php Normal file
View File

@@ -0,0 +1,45 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Stateful Domains
|--------------------------------------------------------------------------
|
| Requests from the following domains / hosts will receive stateful API
| authentication cookies. Typically, these should include your local
| and production domains which access your API via a frontend SPA.
|
*/
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', 'localhost,127.0.0.1,127.0.0.1:8000,::1')),
/*
|--------------------------------------------------------------------------
| Expiration Minutes
|--------------------------------------------------------------------------
|
| This value controls the number of minutes until an issued token will be
| considered expired. If this value is null, personal access tokens do
| not expire. This won't tweak the lifetime of first-party sessions.
|
*/
'expiration' => null,
/*
|--------------------------------------------------------------------------
| Sanctum Middleware
|--------------------------------------------------------------------------
|
| When authenticating your first-party SPA with Sanctum you may need to
| customize some of the middleware Sanctum uses while processing the
| request. You may change the middleware listed below as required.
|
*/
'middleware' => [
'verify_csrf_token' => Support\Middleware\VerifyCsrfToken::class,
'encrypt_cookies' => Support\Middleware\EncryptCookies::class,
],
];

View File

@@ -1,7 +1,19 @@
<?php <?php
namespace App\Http; namespace App\Http;
use Fruitcake\Cors\HandleCors;
use Support\Middleware\TrimStrings;
use Support\Middleware\TrustProxies;
use Support\Middleware\EncryptCookies;
use Support\Middleware\VerifyCsrfToken;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\Foundation\Http\Kernel as HttpKernel; use Illuminate\Foundation\Http\Kernel as HttpKernel;
use Illuminate\Routing\Middleware\SubstituteBindings;
use Illuminate\View\Middleware\ShareErrorsFromSession;
use Support\Middleware\PreventRequestsDuringMaintenance;
use Illuminate\Foundation\Http\Middleware\ValidatePostSize;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull;
use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful; use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;
class Kernel extends HttpKernel class Kernel extends HttpKernel
@@ -14,13 +26,12 @@ class Kernel extends HttpKernel
* @var array * @var array
*/ */
protected $middleware = [ protected $middleware = [
// \App\Http\Middleware\TrustHosts::class, TrustProxies::class,
\Support\Middleware\TrustProxies::class, HandleCors::class,
\Fruitcake\Cors\HandleCors::class, PreventRequestsDuringMaintenance::class,
\Support\Middleware\PreventRequestsDuringMaintenance::class, ValidatePostSize::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, TrimStrings::class,
\Support\Middleware\TrimStrings::class, ConvertEmptyStringsToNull::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
]; ];
/** /**
@@ -30,20 +41,18 @@ class Kernel extends HttpKernel
*/ */
protected $middlewareGroups = [ protected $middlewareGroups = [
'web' => [ 'web' => [
\Support\Middleware\EncryptCookies::class, EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class, StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class, ShareErrorsFromSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class, VerifyCsrfToken::class,
\Support\Middleware\VerifyCsrfToken::class, SubstituteBindings::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
], ],
'api' => [ 'api' => [
EnsureFrontendRequestsAreStateful::class, EnsureFrontendRequestsAreStateful::class,
//'throttle:api', //'throttle:api',
//\App\Http\Middleware\EncryptCookies::class, SubstituteBindings::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
], ],
]; ];

View File

@@ -1,7 +1,6 @@
<?php <?php
namespace App\Providers; namespace App\Providers;
use Illuminate\Support\Facades\App;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider

View File

@@ -2,13 +2,13 @@
namespace App\Users\Models; namespace App\Users\Models;
use ByteUnits\Metric; use ByteUnits\Metric;
use Database\Factories\UserFactory;
use Domain\Files\Models\File;
use Domain\Folders\Models\Folder;
use Domain\Traffic\Models\Traffic;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Domain\Files\Models\File;
use Laravel\Cashier\Billable; use Laravel\Cashier\Billable;
use Domain\Folders\Models\Folder;
use Laravel\Sanctum\HasApiTokens; use Laravel\Sanctum\HasApiTokens;
use Domain\Traffic\Models\Traffic;
use Database\Factories\UserFactory;
use Kyslik\ColumnSortable\Sortable; use Kyslik\ColumnSortable\Sortable;
use Support\Services\HelperService; use Support\Services\HelperService;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;

View File

@@ -2,11 +2,11 @@
namespace Domain\Files\Models; namespace Domain\Files\Models;
use ByteUnits\Metric; use ByteUnits\Metric;
use Database\Factories\FileFactory;
use Domain\Folders\Models\Folder;
use Domain\Sharing\Models\Share;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Laravel\Scout\Searchable; use Laravel\Scout\Searchable;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Database\Factories\FileFactory;
use Kyslik\ColumnSortable\Sortable; use Kyslik\ColumnSortable\Sortable;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;

View File

@@ -26,7 +26,7 @@ class UploadRequest extends FormRequest
return [ return [
'filename' => 'required|string', 'filename' => 'required|string',
'folder_id' => 'nullable|uuid', 'folder_id' => 'nullable|uuid',
'is_last' => 'sometimes|boolean', 'is_last' => 'sometimes|string',
'file' => ['required', 'file', new DisabledMimetypes], 'file' => ['required', 'file', new DisabledMimetypes],
]; ];
} }

View File

@@ -1,12 +1,12 @@
<?php <?php
namespace Domain\Folders\Models; namespace Domain\Folders\Models;
use Database\Factories\FolderFactory;
use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Domain\Files\Models\File;
use Laravel\Scout\Searchable; use Laravel\Scout\Searchable;
use Domain\Sharing\Models\Share;
use Kyslik\ColumnSortable\Sortable; use Kyslik\ColumnSortable\Sortable;
use Database\Factories\FolderFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use TeamTNT\TNTSearch\Indexer\TNTIndexer; use TeamTNT\TNTSearch\Indexer\TNTIndexer;
use \Illuminate\Database\Eloquent\SoftDeletes; use \Illuminate\Database\Eloquent\SoftDeletes;

View File

@@ -74,11 +74,15 @@ class AppFunctionsController extends Controller
*/ */
public function og_site(Share $shared) public function og_site(Share $shared)
{ {
$namespace = match ($shared->type) {
'folder' => 'Domain\\Folders\\Models\\Folder',
'file' => 'Domain\\Files\\Models\\File',
};
// Get file/folder record // Get file/folder record
$item = ('App\\Models\\' . ucfirst($shared->type)) $item = ($namespace)::where('user_id', $shared->user->id)
::where('user_id', $shared->user->id) ->where('id', $shared->item_id)
->where('id', $shared->item_id) ->first();
->first();
if ($item->thumbnail) { if ($item->thumbnail) {
$item->setPublicUrl($shared->token); $item->setPublicUrl($shared->token);

View File

@@ -1,8 +1,9 @@
<?php <?php
namespace Domain\Sharing\Models; namespace Domain\Sharing\Models;
use Database\Factories\ShareFactory; use App\Users\Models\User;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Database\Factories\ShareFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;

View File

@@ -2,8 +2,8 @@
namespace Domain\Zipping\Models; namespace Domain\Zipping\Models;
use App\Users\Models\User; use App\Users\Models\User;
use Database\Factories\ZipFactory;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Database\Factories\ZipFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;

View File

@@ -258,9 +258,12 @@ if (! function_exists('get_item')) {
*/ */
function get_item($type, $id) function get_item($type, $id)
{ {
$model = strtolower($type) === 'folder' ? 'Folder' : 'File'; $namespace = match ($type) {
'folder' => 'Domain\\Folders\\Models\\Folder',
'file' => 'Domain\\Files\\Models\\File',
};
return ("App\\Models\\$model")::find($id); return ($namespace)::find($id);
} }
} }

View File

@@ -1,5 +1,5 @@
<?php <?php
namespace Tests\Feature\Accounts; namespace Tests\App\Users;
use Storage; use Storage;
use Notification; use Notification;
@@ -7,8 +7,8 @@ use Tests\TestCase;
use App\Users\Models\User; use App\Users\Models\User;
use Domain\Settings\Models\Setting; use Domain\Settings\Models\Setting;
use Illuminate\Support\Facades\Password; use Illuminate\Support\Facades\Password;
use App\Users\Notifications\ResetPassword;
use Illuminate\Auth\Notifications\VerifyEmail; use Illuminate\Auth\Notifications\VerifyEmail;
use Domain\Sharing\Notifications\ResetPassword;
class SignFlowTest extends TestCase class SignFlowTest extends TestCase
{ {

View File

@@ -13,8 +13,8 @@ use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Domain\Settings\Models\Setting; use Domain\Settings\Models\Setting;
use App\Users\Notifications\ResetPassword;
use Domain\SetupWizard\Services\SetupService; use Domain\SetupWizard\Services\SetupService;
use Domain\Sharing\Notifications\ResetPassword;
class AdminTest extends TestCase class AdminTest extends TestCase
{ {
@@ -354,7 +354,7 @@ class AdminTest extends TestCase
'filename' => $file->name, 'filename' => $file->name,
'file' => $file, 'file' => $file,
'folder_id' => null, 'folder_id' => null,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
}); });

View File

@@ -49,7 +49,7 @@ class FileTest extends TestCase
'filename' => $file->name, 'filename' => $file->name,
'file' => $file, 'file' => $file,
'folder_id' => null, 'folder_id' => null,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
$disk = Storage::disk('local'); $disk = Storage::disk('local');
@@ -88,7 +88,7 @@ class FileTest extends TestCase
'filename' => $file->name, 'filename' => $file->name,
'file' => $file, 'file' => $file,
'folder_id' => null, 'folder_id' => null,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
$disk = Storage::disk('local'); $disk = Storage::disk('local');
@@ -249,7 +249,7 @@ class FileTest extends TestCase
'filename' => $file->name, 'filename' => $file->name,
'file' => $file, 'file' => $file,
'folder_id' => null, 'folder_id' => null,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
}); });

View File

@@ -408,7 +408,7 @@ class FolderTest extends TestCase
'filename' => $file->name, 'filename' => $file->name,
'file' => $file, 'file' => $file,
'folder_id' => $folder->id, 'folder_id' => $folder->id,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
}); });

View File

@@ -1,11 +1,12 @@
<?php <?php
namespace Tests\Domain\Settings; namespace Tests\Domain\Settings;
use Storage;
use Tests\TestCase; use Tests\TestCase;
use App\Users\Models\User; use App\Users\Models\User;
use Laravel\Sanctum\Sanctum;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Domain\Settings\Models\Setting; use Domain\Settings\Models\Setting;
use Domain\SetupWizard\Services\SetupService;
class SettingsTest extends TestCase class SettingsTest extends TestCase
{ {
@@ -37,7 +38,7 @@ class SettingsTest extends TestCase
*/ */
public function it_get_admin_settings() public function it_get_admin_settings()
{ {
$this->setup->seed_default_settings('Extended'); resolve(SetupService::class)->seed_default_settings('Extended');
$admin = User::factory(User::class) $admin = User::factory(User::class)
->create(['role' => 'admin']); ->create(['role' => 'admin']);
@@ -71,7 +72,7 @@ class SettingsTest extends TestCase
*/ */
public function it_update_settings() public function it_update_settings()
{ {
$this->setup->seed_default_settings('Extended'); resolve(SetupService::class)->seed_default_settings('Extended');
$admin = User::factory(User::class) $admin = User::factory(User::class)
->create(['role' => 'admin']); ->create(['role' => 'admin']);
@@ -104,8 +105,6 @@ class SettingsTest extends TestCase
$admin = User::factory(User::class) $admin = User::factory(User::class)
->create(['role' => 'admin']); ->create(['role' => 'admin']);
Sanctum::actingAs($admin);
$this $this
->actingAs($admin) ->actingAs($admin)
->patchJson('/api/admin/settings', [ ->patchJson('/api/admin/settings', [

View File

@@ -335,7 +335,7 @@ class VisitorManipulatingTest extends TestCase
'filename' => $file->name, 'filename' => $file->name,
'file' => $file, 'file' => $file,
'folder_id' => $folder->id, 'folder_id' => $folder->id,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
} }
@@ -345,7 +345,7 @@ class VisitorManipulatingTest extends TestCase
'filename' => $file->name, 'filename' => $file->name,
'file' => $file, 'file' => $file,
'folder_id' => $folder->id, 'folder_id' => $folder->id,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
} }

View File

@@ -76,7 +76,7 @@ class TrashTest extends TestCase
'filename' => $image->name, 'filename' => $image->name,
'file' => $image, 'file' => $image,
'folder_id' => null, 'folder_id' => null,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
$file = File::first(); $file = File::first();

View File

@@ -1,6 +1,7 @@
<?php <?php
namespace Tests\Domain\Zipping; namespace Tests\Domain\Zipping;
use Storage;
use Tests\TestCase; use Tests\TestCase;
use App\Users\Models\User; use App\Users\Models\User;
use Illuminate\Support\Str; use Illuminate\Support\Str;

View File

@@ -31,7 +31,7 @@ class UserZippingTest extends TestCase
'filename' => $file->name, 'filename' => $file->name,
'file' => $file, 'file' => $file,
'folder_id' => null, 'folder_id' => null,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
}); });
@@ -75,7 +75,7 @@ class UserZippingTest extends TestCase
'filename' => $file->name, 'filename' => $file->name,
'file' => $file, 'file' => $file,
'folder_id' => $folder->id, 'folder_id' => $folder->id,
'is_last' => true, 'is_last' => 'true',
])->assertStatus(201); ])->assertStatus(201);
}); });

View File

@@ -7,7 +7,7 @@ use App\Users\Models\User;
use Domain\Zipping\Models\Zip; use Domain\Zipping\Models\Zip;
use Domain\Sharing\Models\Share; use Domain\Sharing\Models\Share;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Domain\SetupWizard\Services\SchedulerService; use Support\Scheduler\Actions\SchedulerService;
class SchedulerTest extends TestCase class SchedulerTest extends TestCase
{ {

View File

@@ -25,6 +25,6 @@ abstract class TestCase extends BaseTestCase
resolve(SetupService::class)->create_directories(); resolve(SetupService::class)->create_directories();
$this->withoutExceptionHandling(); //$this->withoutExceptionHandling();
} }
} }