From 9ac804545b989aa3c691575dd8eddd0475f65a69 Mon Sep 17 00:00:00 2001 From: Krzysztof Rewak Date: Wed, 26 Jan 2022 08:24:48 +0100 Subject: [PATCH] - directory refactor --- .env.example | 2 +- .../ExceptionHandler.php} | 6 +-- .../Providers/AppServiceProvider.php | 6 +-- .../Providers/AuthServiceProvider.php | 2 +- .../Providers/EventServiceProvider.php | 2 +- .../Providers/ObserverServiceProvider.php | 10 ++-- .../Providers/RouteServiceProvider.php | 2 +- .../Providers/TelescopeServiceProvider.php | 2 +- app/{Enums => Domain}/EmploymentForm.php | 2 +- .../Helpers/UserAvatarGenerator.php | 4 +- .../Helpers/YearPeriodRetriever.php | 4 +- app/{ => Eloquent}/Models/User.php | 4 +- app/{ => Eloquent}/Models/VacationLimit.php | 2 +- app/{ => Eloquent}/Models/YearPeriod.php | 2 +- app/{ => Eloquent}/Observers/UserObserver.php | 8 +-- .../Observers/YearPeriodObserver.php | 8 +-- .../Scopes/SelectedYearPeriodScope.php | 4 +- .../Console/Commands/CreateUserCommand.php | 7 ++- app/{ => Infrastructure}/Console/Kernel.php | 2 +- .../Http/Controllers/Controller.php | 2 +- .../Http/Controllers/GoogleController.php | 4 +- .../Http/Controllers/LogoutController.php | 2 +- .../SelectYearPeriodController.php | 6 +-- .../Http/Controllers/UserController.php | 12 ++--- .../Controllers/VacationLimitController.php | 8 +-- app/{ => Infrastructure}/Http/Kernel.php | 12 ++--- .../Http/Middleware/Authenticate.php | 2 +- .../Http/Middleware/HandleInertiaRequests.php | 6 +-- .../Middleware/RedirectIfAuthenticated.php | 2 +- .../Http/Middleware/TrimStrings.php | 2 +- .../Http/Middleware/TrustProxies.php | 2 +- .../Http/Requests/UserRequest.php | 4 +- .../Http/Requests/VacationLimitRequest.php | 4 +- .../Http/Resources/UserFormDataResource.php | 2 +- .../Http/Resources/UserResource.php | 2 +- .../Http/Resources/VacationLimitResource.php | 2 +- .../Jobs/CheckYearPeriod.php | 4 +- artisan | 52 ++++--------------- bootstrap/app.php | 8 +-- config/app.php | 12 ++--- config/auth.php | 2 +- docker-compose.yml | 2 +- package-lock.json | 2 +- readme.md | 1 + setup | 13 +++++ tests/Browser/AuthenticationTest.php | 2 +- tests/Feature/AuthenticationTest.php | 2 +- tests/Feature/InertiaTest.php | 2 +- tests/Feature/SelectYearPeriodTest.php | 4 +- tests/Feature/UserTest.php | 28 +++++----- tests/Feature/VacationLimitTest.php | 4 +- tests/Traits/InteractsWithYearPeriods.php | 4 +- tests/Unit/AvatarTest.php | 2 +- tests/Unit/CheckYearPeriodTest.php | 2 +- tests/Unit/VacationLimitTest.php | 4 +- tests/Unit/YearPeriodRetrieverTest.php | 4 +- 56 files changed, 144 insertions(+), 163 deletions(-) rename app/{Exceptions/Handler.php => Architecture/ExceptionHandler.php} (54%) rename app/{ => Architecture}/Providers/AppServiceProvider.php (74%) rename app/{ => Architecture}/Providers/AuthServiceProvider.php (87%) rename app/{ => Architecture}/Providers/EventServiceProvider.php (83%) rename app/{ => Architecture}/Providers/ObserverServiceProvider.php (58%) rename app/{ => Architecture}/Providers/RouteServiceProvider.php (95%) rename app/{ => Architecture}/Providers/TelescopeServiceProvider.php (93%) rename app/{Enums => Domain}/EmploymentForm.php (96%) rename app/{ => Eloquent}/Helpers/UserAvatarGenerator.php (94%) rename app/{ => Eloquent}/Helpers/YearPeriodRetriever.php (94%) rename app/{ => Eloquent}/Models/User.php (96%) rename app/{ => Eloquent}/Models/VacationLimit.php (96%) rename app/{ => Eloquent}/Models/YearPeriod.php (95%) rename app/{ => Eloquent}/Observers/UserObserver.php (84%) rename app/{ => Eloquent}/Observers/YearPeriodObserver.php (73%) rename app/{ => Eloquent}/Scopes/SelectedYearPeriodScope.php (86%) rename app/{ => Infrastructure}/Console/Commands/CreateUserCommand.php (70%) rename app/{ => Infrastructure}/Console/Kernel.php (89%) rename app/{ => Infrastructure}/Http/Controllers/Controller.php (88%) rename app/{ => Infrastructure}/Http/Controllers/GoogleController.php (93%) rename app/{ => Infrastructure}/Http/Controllers/LogoutController.php (90%) rename app/{ => Infrastructure}/Http/Controllers/SelectYearPeriodController.php (78%) rename app/{ => Infrastructure}/Http/Controllers/UserController.php (87%) rename app/{ => Infrastructure}/Http/Controllers/VacationLimitController.php (80%) rename app/{ => Infrastructure}/Http/Kernel.php (87%) rename app/{ => Infrastructure}/Http/Middleware/Authenticate.php (83%) rename app/{ => Infrastructure}/Http/Middleware/HandleInertiaRequests.php (84%) rename app/{ => Infrastructure}/Http/Middleware/RedirectIfAuthenticated.php (92%) rename app/{ => Infrastructure}/Http/Middleware/TrimStrings.php (84%) rename app/{ => Infrastructure}/Http/Middleware/TrustProxies.php (90%) rename app/{ => Infrastructure}/Http/Requests/UserRequest.php (92%) rename app/{ => Infrastructure}/Http/Requests/VacationLimitRequest.php (89%) rename app/{ => Infrastructure}/Http/Resources/UserFormDataResource.php (91%) rename app/{ => Infrastructure}/Http/Resources/UserResource.php (93%) rename app/{ => Infrastructure}/Http/Resources/VacationLimitResource.php (90%) rename app/{ => Infrastructure}/Jobs/CheckYearPeriod.php (92%) create mode 100644 setup diff --git a/.env.example b/.env.example index 0499d29..49c10a7 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ -APP_NAME=Laravel +APP_NAME="Toby HR applicaiton" APP_ENV=local APP_KEY= APP_DEBUG=true diff --git a/app/Exceptions/Handler.php b/app/Architecture/ExceptionHandler.php similarity index 54% rename from app/Exceptions/Handler.php rename to app/Architecture/ExceptionHandler.php index bd24822..746f3e1 100644 --- a/app/Exceptions/Handler.php +++ b/app/Architecture/ExceptionHandler.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace Toby\Exceptions; +namespace Toby\Architecture; -use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; +use Illuminate\Foundation\Exceptions\Handler; -class Handler extends ExceptionHandler +class ExceptionHandler extends Handler { protected $dontFlash = [ "current_password", diff --git a/app/Providers/AppServiceProvider.php b/app/Architecture/Providers/AppServiceProvider.php similarity index 74% rename from app/Providers/AppServiceProvider.php rename to app/Architecture/Providers/AppServiceProvider.php index cf3fe47..59841af 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Architecture/Providers/AppServiceProvider.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace Toby\Providers; +namespace Toby\Architecture\Providers; use Illuminate\Support\Carbon; use Illuminate\Support\ServiceProvider; -use Toby\Models\VacationLimit; -use Toby\Scopes\SelectedYearPeriodScope; +use Toby\Eloquent\Models\VacationLimit; +use Toby\Eloquent\Scopes\SelectedYearPeriodScope; class AppServiceProvider extends ServiceProvider { diff --git a/app/Providers/AuthServiceProvider.php b/app/Architecture/Providers/AuthServiceProvider.php similarity index 87% rename from app/Providers/AuthServiceProvider.php rename to app/Architecture/Providers/AuthServiceProvider.php index 01aa923..88f3b1c 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Architecture/Providers/AuthServiceProvider.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Providers; +namespace Toby\Architecture\Providers; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; diff --git a/app/Providers/EventServiceProvider.php b/app/Architecture/Providers/EventServiceProvider.php similarity index 83% rename from app/Providers/EventServiceProvider.php rename to app/Architecture/Providers/EventServiceProvider.php index 049f443..e1b1534 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Architecture/Providers/EventServiceProvider.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Providers; +namespace Toby\Architecture\Providers; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; diff --git a/app/Providers/ObserverServiceProvider.php b/app/Architecture/Providers/ObserverServiceProvider.php similarity index 58% rename from app/Providers/ObserverServiceProvider.php rename to app/Architecture/Providers/ObserverServiceProvider.php index 16badc4..3409e18 100644 --- a/app/Providers/ObserverServiceProvider.php +++ b/app/Architecture/Providers/ObserverServiceProvider.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace Toby\Providers; +namespace Toby\Architecture\Providers; use Illuminate\Support\ServiceProvider; -use Toby\Models\User; -use Toby\Models\YearPeriod; -use Toby\Observers\UserObserver; -use Toby\Observers\YearPeriodObserver; +use Toby\Eloquent\Models\User; +use Toby\Eloquent\Models\YearPeriod; +use Toby\Eloquent\Observers\UserObserver; +use Toby\Eloquent\Observers\YearPeriodObserver; class ObserverServiceProvider extends ServiceProvider { diff --git a/app/Providers/RouteServiceProvider.php b/app/Architecture/Providers/RouteServiceProvider.php similarity index 95% rename from app/Providers/RouteServiceProvider.php rename to app/Architecture/Providers/RouteServiceProvider.php index d3c423c..2412290 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Architecture/Providers/RouteServiceProvider.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Providers; +namespace Toby\Architecture\Providers; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; diff --git a/app/Providers/TelescopeServiceProvider.php b/app/Architecture/Providers/TelescopeServiceProvider.php similarity index 93% rename from app/Providers/TelescopeServiceProvider.php rename to app/Architecture/Providers/TelescopeServiceProvider.php index 129b793..965bcc9 100644 --- a/app/Providers/TelescopeServiceProvider.php +++ b/app/Architecture/Providers/TelescopeServiceProvider.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Providers; +namespace Toby\Architecture\Providers; use Illuminate\Support\ServiceProvider; use Laravel\Telescope\TelescopeApplicationServiceProvider; diff --git a/app/Enums/EmploymentForm.php b/app/Domain/EmploymentForm.php similarity index 96% rename from app/Enums/EmploymentForm.php rename to app/Domain/EmploymentForm.php index 27c1bb7..1c4f58a 100644 --- a/app/Enums/EmploymentForm.php +++ b/app/Domain/EmploymentForm.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Enums; +namespace Toby\Domain; enum EmploymentForm: string { diff --git a/app/Helpers/UserAvatarGenerator.php b/app/Eloquent/Helpers/UserAvatarGenerator.php similarity index 94% rename from app/Helpers/UserAvatarGenerator.php rename to app/Eloquent/Helpers/UserAvatarGenerator.php index 3ff068b..1bdc39a 100644 --- a/app/Helpers/UserAvatarGenerator.php +++ b/app/Eloquent/Helpers/UserAvatarGenerator.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace Toby\Helpers; +namespace Toby\Eloquent\Helpers; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use LasseRafn\InitialAvatarGenerator\InitialAvatar; use SVG\SVG; -use Toby\Models\User; +use Toby\Eloquent\Models\User; class UserAvatarGenerator { diff --git a/app/Helpers/YearPeriodRetriever.php b/app/Eloquent/Helpers/YearPeriodRetriever.php similarity index 94% rename from app/Helpers/YearPeriodRetriever.php rename to app/Eloquent/Helpers/YearPeriodRetriever.php index b474865..37d765e 100644 --- a/app/Helpers/YearPeriodRetriever.php +++ b/app/Eloquent/Helpers/YearPeriodRetriever.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace Toby\Helpers; +namespace Toby\Eloquent\Helpers; use Illuminate\Contracts\Session\Session; -use Toby\Models\YearPeriod; +use Toby\Eloquent\Models\YearPeriod; class YearPeriodRetriever { diff --git a/app/Models/User.php b/app/Eloquent/Models/User.php similarity index 96% rename from app/Models/User.php rename to app/Eloquent/Models/User.php index 49ccd11..b76f347 100644 --- a/app/Models/User.php +++ b/app/Eloquent/Models/User.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Models; +namespace Toby\Eloquent\Models; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -12,7 +12,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Support\Carbon; use Illuminate\Support\Collection; -use Toby\Enums\EmploymentForm; +use Toby\Domain\EmploymentForm; /** * @property int $id diff --git a/app/Models/VacationLimit.php b/app/Eloquent/Models/VacationLimit.php similarity index 96% rename from app/Models/VacationLimit.php rename to app/Eloquent/Models/VacationLimit.php index 8ebb771..b1343ae 100644 --- a/app/Models/VacationLimit.php +++ b/app/Eloquent/Models/VacationLimit.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Models; +namespace Toby\Eloquent\Models; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; diff --git a/app/Models/YearPeriod.php b/app/Eloquent/Models/YearPeriod.php similarity index 95% rename from app/Models/YearPeriod.php rename to app/Eloquent/Models/YearPeriod.php index 569ad03..31874da 100644 --- a/app/Models/YearPeriod.php +++ b/app/Eloquent/Models/YearPeriod.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Models; +namespace Toby\Eloquent\Models; use Carbon\Carbon; use Illuminate\Database\Eloquent\Factories\HasFactory; diff --git a/app/Observers/UserObserver.php b/app/Eloquent/Observers/UserObserver.php similarity index 84% rename from app/Observers/UserObserver.php rename to app/Eloquent/Observers/UserObserver.php index 454cde3..9c210dc 100644 --- a/app/Observers/UserObserver.php +++ b/app/Eloquent/Observers/UserObserver.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace Toby\Observers; +namespace Toby\Eloquent\Observers; use Illuminate\Support\Facades\Storage; -use Toby\Helpers\UserAvatarGenerator; -use Toby\Helpers\YearPeriodRetriever; -use Toby\Models\User; +use Toby\Eloquent\Helpers\UserAvatarGenerator; +use Toby\Eloquent\Helpers\YearPeriodRetriever; +use Toby\Eloquent\Models\User; class UserObserver { diff --git a/app/Observers/YearPeriodObserver.php b/app/Eloquent/Observers/YearPeriodObserver.php similarity index 73% rename from app/Observers/YearPeriodObserver.php rename to app/Eloquent/Observers/YearPeriodObserver.php index 71caa82..6aa44af 100644 --- a/app/Observers/YearPeriodObserver.php +++ b/app/Eloquent/Observers/YearPeriodObserver.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace Toby\Observers; +namespace Toby\Eloquent\Observers; -use Toby\Helpers\UserAvatarGenerator; -use Toby\Models\User; -use Toby\Models\YearPeriod; +use Toby\Eloquent\Helpers\UserAvatarGenerator; +use Toby\Eloquent\Models\User; +use Toby\Eloquent\Models\YearPeriod; class YearPeriodObserver { diff --git a/app/Scopes/SelectedYearPeriodScope.php b/app/Eloquent/Scopes/SelectedYearPeriodScope.php similarity index 86% rename from app/Scopes/SelectedYearPeriodScope.php rename to app/Eloquent/Scopes/SelectedYearPeriodScope.php index 4d407fa..953cee6 100644 --- a/app/Scopes/SelectedYearPeriodScope.php +++ b/app/Eloquent/Scopes/SelectedYearPeriodScope.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace Toby\Scopes; +namespace Toby\Eloquent\Scopes; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Scope; -use Toby\Helpers\YearPeriodRetriever; +use Toby\Eloquent\Helpers\YearPeriodRetriever; class SelectedYearPeriodScope implements Scope { diff --git a/app/Console/Commands/CreateUserCommand.php b/app/Infrastructure/Console/Commands/CreateUserCommand.php similarity index 70% rename from app/Console/Commands/CreateUserCommand.php rename to app/Infrastructure/Console/Commands/CreateUserCommand.php index 34c6dec..b0092fd 100644 --- a/app/Console/Commands/CreateUserCommand.php +++ b/app/Infrastructure/Console/Commands/CreateUserCommand.php @@ -2,15 +2,14 @@ declare(strict_types=1); -namespace Toby\Console\Commands; +namespace Toby\Infrastructure\Console\Commands; use Illuminate\Console\Command; -use Toby\Models\User; +use Toby\Eloquent\Models\User; class CreateUserCommand extends Command { - protected $signature = "user:create - {email : an email for the user}"; + protected $signature = "user:create {email : an email for the user}"; protected $description = "Creates a user"; public function handle(): void diff --git a/app/Console/Kernel.php b/app/Infrastructure/Console/Kernel.php similarity index 89% rename from app/Console/Kernel.php rename to app/Infrastructure/Console/Kernel.php index f2429ca..a53a088 100644 --- a/app/Console/Kernel.php +++ b/app/Infrastructure/Console/Kernel.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Console; +namespace Toby\Infrastructure\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; diff --git a/app/Http/Controllers/Controller.php b/app/Infrastructure/Http/Controllers/Controller.php similarity index 88% rename from app/Http/Controllers/Controller.php rename to app/Infrastructure/Http/Controllers/Controller.php index 187a0af..73c7e6e 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Infrastructure/Http/Controllers/Controller.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http\Controllers; +namespace Toby\Infrastructure\Http\Controllers; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Bus\DispatchesJobs; diff --git a/app/Http/Controllers/GoogleController.php b/app/Infrastructure/Http/Controllers/GoogleController.php similarity index 93% rename from app/Http/Controllers/GoogleController.php rename to app/Infrastructure/Http/Controllers/GoogleController.php index 5c050cf..6f15e8d 100644 --- a/app/Http/Controllers/GoogleController.php +++ b/app/Infrastructure/Http/Controllers/GoogleController.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace Toby\Http\Controllers; +namespace Toby\Infrastructure\Http\Controllers; use Illuminate\Contracts\Auth\Factory as AuthFactory; use Illuminate\Database\Eloquent\ModelNotFoundException; use Laravel\Socialite\SocialiteManager; use Symfony\Component\HttpFoundation\RedirectResponse; -use Toby\Models\User; +use Toby\Eloquent\Models\User; class GoogleController extends Controller { diff --git a/app/Http/Controllers/LogoutController.php b/app/Infrastructure/Http/Controllers/LogoutController.php similarity index 90% rename from app/Http/Controllers/LogoutController.php rename to app/Infrastructure/Http/Controllers/LogoutController.php index f7519b7..581b4a6 100644 --- a/app/Http/Controllers/LogoutController.php +++ b/app/Infrastructure/Http/Controllers/LogoutController.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http\Controllers; +namespace Toby\Infrastructure\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; diff --git a/app/Http/Controllers/SelectYearPeriodController.php b/app/Infrastructure/Http/Controllers/SelectYearPeriodController.php similarity index 78% rename from app/Http/Controllers/SelectYearPeriodController.php rename to app/Infrastructure/Http/Controllers/SelectYearPeriodController.php index 4965ef3..14b95e7 100644 --- a/app/Http/Controllers/SelectYearPeriodController.php +++ b/app/Infrastructure/Http/Controllers/SelectYearPeriodController.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace Toby\Http\Controllers; +namespace Toby\Infrastructure\Http\Controllers; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; -use Toby\Helpers\YearPeriodRetriever; -use Toby\Models\YearPeriod; +use Toby\Eloquent\Helpers\YearPeriodRetriever; +use Toby\Eloquent\Models\YearPeriod; class SelectYearPeriodController extends Controller { diff --git a/app/Http/Controllers/UserController.php b/app/Infrastructure/Http/Controllers/UserController.php similarity index 87% rename from app/Http/Controllers/UserController.php rename to app/Infrastructure/Http/Controllers/UserController.php index a8c4e48..6adf18d 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Infrastructure/Http/Controllers/UserController.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace Toby\Http\Controllers; +namespace Toby\Infrastructure\Http\Controllers; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Inertia\Response; -use Toby\Enums\EmploymentForm; -use Toby\Http\Requests\UserRequest; -use Toby\Http\Resources\UserFormDataResource; -use Toby\Http\Resources\UserResource; -use Toby\Models\User; +use Toby\Domain\EmploymentForm; +use Toby\Eloquent\Models\User; +use Toby\Infrastructure\Http\Requests\UserRequest; +use Toby\Infrastructure\Http\Resources\UserFormDataResource; +use Toby\Infrastructure\Http\Resources\UserResource; class UserController extends Controller { diff --git a/app/Http/Controllers/VacationLimitController.php b/app/Infrastructure/Http/Controllers/VacationLimitController.php similarity index 80% rename from app/Http/Controllers/VacationLimitController.php rename to app/Infrastructure/Http/Controllers/VacationLimitController.php index 3ec755b..7d207d6 100644 --- a/app/Http/Controllers/VacationLimitController.php +++ b/app/Infrastructure/Http/Controllers/VacationLimitController.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace Toby\Http\Controllers; +namespace Toby\Infrastructure\Http\Controllers; use Illuminate\Http\RedirectResponse; use Inertia\Response; -use Toby\Http\Requests\VacationLimitRequest; -use Toby\Http\Resources\VacationLimitResource; -use Toby\Models\VacationLimit; +use Toby\Eloquent\Models\VacationLimit; +use Toby\Infrastructure\Http\Requests\VacationLimitRequest; +use Toby\Infrastructure\Http\Resources\VacationLimitResource; class VacationLimitController extends Controller { diff --git a/app/Http/Kernel.php b/app/Infrastructure/Http/Kernel.php similarity index 87% rename from app/Http/Kernel.php rename to app/Infrastructure/Http/Kernel.php index 3d330ee..8338fad 100644 --- a/app/Http/Kernel.php +++ b/app/Infrastructure/Http/Kernel.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http; +namespace Toby\Infrastructure\Http; use Fruitcake\Cors\HandleCors; use Illuminate\Auth\Middleware\AuthenticateWithBasicAuth; @@ -23,11 +23,11 @@ use Illuminate\Routing\Middleware\ValidateSignature; use Illuminate\Session\Middleware\AuthenticateSession; use Illuminate\Session\Middleware\StartSession; use Illuminate\View\Middleware\ShareErrorsFromSession; -use Toby\Http\Middleware\Authenticate; -use Toby\Http\Middleware\HandleInertiaRequests; -use Toby\Http\Middleware\RedirectIfAuthenticated; -use Toby\Http\Middleware\TrimStrings; -use Toby\Http\Middleware\TrustProxies; +use Toby\Infrastructure\Http\Middleware\Authenticate; +use Toby\Infrastructure\Http\Middleware\HandleInertiaRequests; +use Toby\Infrastructure\Http\Middleware\RedirectIfAuthenticated; +use Toby\Infrastructure\Http\Middleware\TrimStrings; +use Toby\Infrastructure\Http\Middleware\TrustProxies; class Kernel extends HttpKernel { diff --git a/app/Http/Middleware/Authenticate.php b/app/Infrastructure/Http/Middleware/Authenticate.php similarity index 83% rename from app/Http/Middleware/Authenticate.php rename to app/Infrastructure/Http/Middleware/Authenticate.php index 8fa8185..c5e042b 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Infrastructure/Http/Middleware/Authenticate.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http\Middleware; +namespace Toby\Infrastructure\Http\Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware; diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Infrastructure/Http/Middleware/HandleInertiaRequests.php similarity index 84% rename from app/Http/Middleware/HandleInertiaRequests.php rename to app/Infrastructure/Http/Middleware/HandleInertiaRequests.php index dd63c51..24e9e9f 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Infrastructure/Http/Middleware/HandleInertiaRequests.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace Toby\Http\Middleware; +namespace Toby\Infrastructure\Http\Middleware; use Illuminate\Http\Request; use Inertia\Middleware; -use Toby\Helpers\YearPeriodRetriever; -use Toby\Http\Resources\UserResource; +use Toby\Eloquent\Helpers\YearPeriodRetriever; +use Toby\Infrastructure\Http\Resources\UserResource; class HandleInertiaRequests extends Middleware { diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Infrastructure/Http/Middleware/RedirectIfAuthenticated.php similarity index 92% rename from app/Http/Middleware/RedirectIfAuthenticated.php rename to app/Infrastructure/Http/Middleware/RedirectIfAuthenticated.php index 84f0ae8..9a7a28c 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Infrastructure/Http/Middleware/RedirectIfAuthenticated.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http\Middleware; +namespace Toby\Infrastructure\Http\Middleware; use Closure; use Illuminate\Http\Request; diff --git a/app/Http/Middleware/TrimStrings.php b/app/Infrastructure/Http/Middleware/TrimStrings.php similarity index 84% rename from app/Http/Middleware/TrimStrings.php rename to app/Infrastructure/Http/Middleware/TrimStrings.php index 0013621..01580ac 100644 --- a/app/Http/Middleware/TrimStrings.php +++ b/app/Infrastructure/Http/Middleware/TrimStrings.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http\Middleware; +namespace Toby\Infrastructure\Http\Middleware; use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware; diff --git a/app/Http/Middleware/TrustProxies.php b/app/Infrastructure/Http/Middleware/TrustProxies.php similarity index 90% rename from app/Http/Middleware/TrustProxies.php rename to app/Infrastructure/Http/Middleware/TrustProxies.php index 3d3d0f7..b3d08f4 100644 --- a/app/Http/Middleware/TrustProxies.php +++ b/app/Infrastructure/Http/Middleware/TrustProxies.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http\Middleware; +namespace Toby\Infrastructure\Http\Middleware; use Illuminate\Http\Middleware\TrustProxies as Middleware; use Symfony\Component\HttpFoundation\Request; diff --git a/app/Http/Requests/UserRequest.php b/app/Infrastructure/Http/Requests/UserRequest.php similarity index 92% rename from app/Http/Requests/UserRequest.php rename to app/Infrastructure/Http/Requests/UserRequest.php index 0c1d59e..9321bc8 100644 --- a/app/Http/Requests/UserRequest.php +++ b/app/Infrastructure/Http/Requests/UserRequest.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace Toby\Http\Requests; +namespace Toby\Infrastructure\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; use Illuminate\Validation\Rules\Enum; -use Toby\Enums\EmploymentForm; +use Toby\Domain\EmploymentForm; class UserRequest extends FormRequest { diff --git a/app/Http/Requests/VacationLimitRequest.php b/app/Infrastructure/Http/Requests/VacationLimitRequest.php similarity index 89% rename from app/Http/Requests/VacationLimitRequest.php rename to app/Infrastructure/Http/Requests/VacationLimitRequest.php index fa43bbc..6cf2017 100644 --- a/app/Http/Requests/VacationLimitRequest.php +++ b/app/Infrastructure/Http/Requests/VacationLimitRequest.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace Toby\Http\Requests; +namespace Toby\Infrastructure\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Collection; -use Toby\Models\VacationLimit; +use Toby\Eloquent\Models\VacationLimit; class VacationLimitRequest extends FormRequest { diff --git a/app/Http/Resources/UserFormDataResource.php b/app/Infrastructure/Http/Resources/UserFormDataResource.php similarity index 91% rename from app/Http/Resources/UserFormDataResource.php rename to app/Infrastructure/Http/Resources/UserFormDataResource.php index ef4a9a3..f040270 100644 --- a/app/Http/Resources/UserFormDataResource.php +++ b/app/Infrastructure/Http/Resources/UserFormDataResource.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http\Resources; +namespace Toby\Infrastructure\Http\Resources; use Illuminate\Http\Resources\Json\JsonResource; diff --git a/app/Http/Resources/UserResource.php b/app/Infrastructure/Http/Resources/UserResource.php similarity index 93% rename from app/Http/Resources/UserResource.php rename to app/Infrastructure/Http/Resources/UserResource.php index ee62ae6..42c45ff 100644 --- a/app/Http/Resources/UserResource.php +++ b/app/Infrastructure/Http/Resources/UserResource.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http\Resources; +namespace Toby\Infrastructure\Http\Resources; use Illuminate\Http\Resources\Json\JsonResource; diff --git a/app/Http/Resources/VacationLimitResource.php b/app/Infrastructure/Http/Resources/VacationLimitResource.php similarity index 90% rename from app/Http/Resources/VacationLimitResource.php rename to app/Infrastructure/Http/Resources/VacationLimitResource.php index 85692b9..4226a14 100644 --- a/app/Http/Resources/VacationLimitResource.php +++ b/app/Infrastructure/Http/Resources/VacationLimitResource.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Toby\Http\Resources; +namespace Toby\Infrastructure\Http\Resources; use Illuminate\Http\Resources\Json\JsonResource; diff --git a/app/Jobs/CheckYearPeriod.php b/app/Infrastructure/Jobs/CheckYearPeriod.php similarity index 92% rename from app/Jobs/CheckYearPeriod.php rename to app/Infrastructure/Jobs/CheckYearPeriod.php index a4a52b6..9922e01 100644 --- a/app/Jobs/CheckYearPeriod.php +++ b/app/Infrastructure/Jobs/CheckYearPeriod.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace Toby\Jobs; +namespace Toby\Infrastructure\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Support\Carbon; -use Toby\Models\YearPeriod; +use Toby\Eloquent\Models\YearPeriod; class CheckYearPeriod implements ShouldQueue { diff --git a/artisan b/artisan index 67a3329..7e974c1 100755 --- a/artisan +++ b/artisan @@ -1,52 +1,20 @@ #!/usr/bin/env php make(Kernel::class); -/* -|-------------------------------------------------------------------------- -| Run The Artisan Application -|-------------------------------------------------------------------------- -| -| When we run the console application, the current CLI command will be -| executed in this console and the response sent back to a terminal -| or another output device for the developers. Here goes nothing! -| -*/ - -$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); - -$status = $kernel->handle( - $input = new Symfony\Component\Console\Input\ArgvInput, - new Symfony\Component\Console\Output\ConsoleOutput -); - -/* -|-------------------------------------------------------------------------- -| Shutdown The Application -|-------------------------------------------------------------------------- -| -| Once Artisan has finished running, we will fire off the shutdown events -| so that any final work may be done by the application before we shut -| down the process. This is the last thing to happen to the request. -| -*/ +$input = new ArgvInput(); +$status = $kernel->handle($input, new ConsoleOutput()); $kernel->terminate($input, $status); diff --git a/bootstrap/app.php b/bootstrap/app.php index ed6258d..1775ff1 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -6,15 +6,15 @@ use Illuminate\Contracts\Console\Kernel as ConsoleKernelContract; use Illuminate\Contracts\Debug\ExceptionHandler as HandlerContract; use Illuminate\Contracts\Http\Kernel as HttpKernelContract; use Illuminate\Foundation\Application; -use Toby\Console\Kernel as ConsoleKernel; -use Toby\Exceptions\Handler; -use Toby\Http\Kernel as HttpKernel; +use Toby\Architecture\ExceptionHandler; +use Toby\Infrastructure\Console\Kernel as ConsoleKernel; +use Toby\Infrastructure\Http\Kernel as HttpKernel; $basePath = $_ENV["APP_BASE_PATH"] ?? dirname(__DIR__); $application = new Application($basePath); $application->singleton(HttpKernelContract::class, HttpKernel::class); $application->singleton(ConsoleKernelContract::class, ConsoleKernel::class); -$application->singleton(HandlerContract::class, Handler::class); +$application->singleton(HandlerContract::class, ExceptionHandler::class); return $application; diff --git a/config/app.php b/config/app.php index 3fa85eb..cbd96cb 100644 --- a/config/app.php +++ b/config/app.php @@ -37,11 +37,11 @@ return [ Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, - Toby\Providers\AppServiceProvider::class, - Toby\Providers\AuthServiceProvider::class, - Toby\Providers\EventServiceProvider::class, - Toby\Providers\RouteServiceProvider::class, - Toby\Providers\TelescopeServiceProvider::class, - Toby\Providers\ObserverServiceProvider::class, + Toby\Architecture\Providers\AppServiceProvider::class, + Toby\Architecture\Providers\AuthServiceProvider::class, + Toby\Architecture\Providers\EventServiceProvider::class, + Toby\Architecture\Providers\RouteServiceProvider::class, + Toby\Architecture\Providers\TelescopeServiceProvider::class, + Toby\Architecture\Providers\ObserverServiceProvider::class, ], ]; diff --git a/config/auth.php b/config/auth.php index a77b4f2..1e40adf 100644 --- a/config/auth.php +++ b/config/auth.php @@ -2,7 +2,7 @@ declare(strict_types=1); -use Toby\Models\User; +use Toby\Eloquent\Models\User; return [ "defaults" => [ diff --git a/docker-compose.yml b/docker-compose.yml index e649c7a..7fcec65 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,7 +43,7 @@ services: - MYSQL_USER=${DOCKER_DEV_DB_USERNAME} - MYSQL_PASSWORD=${DOCKER_DEV_DB_PASSWORD} ports: - - ${DOCKER_DB_EXTERNAL_PORT:-3306}:3306 + - ${DOCKER_DEV_DB_EXTERNAL_PORT:-3306}:3306 volumes: - toby-mysql-data:/var/lib/mysql networks: diff --git a/package-lock.json b/package-lock.json index 7a47b79..c24807a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "toby", + "name": "application", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/readme.md b/readme.md index a45dbc4..3d99076 100644 --- a/readme.md +++ b/readme.md @@ -5,6 +5,7 @@ > HR software you love to hate ## Local setup +- run `sh setup` or: > `dcr` is an alias to `docker-compose run --rm -u "$(id -u):$(id -g)"` diff --git a/setup b/setup new file mode 100644 index 0000000..2fd090a --- /dev/null +++ b/setup @@ -0,0 +1,13 @@ +#!/bin/bash + +if [ ! -f ".env" ]; then + cp .env.example .env +fi + +docker-compose build --no-cache --pull +docker-compose up -d +docker-compose run --rm -u "$(id -u):$(id -g)" php composer install +docker-compose run --rm -u "$(id -u):$(id -g)" php php artisan key:generate +docker-compose run --rm -u "$(id -u):$(id -g)" php php artisan migrate --seed +docker-compose run --rm -u "$(id -u):$(id -g)" node npm install +docker-compose run --rm -u "$(id -u):$(id -g)" node npm run dev diff --git a/tests/Browser/AuthenticationTest.php b/tests/Browser/AuthenticationTest.php index e21c10a..49799b4 100644 --- a/tests/Browser/AuthenticationTest.php +++ b/tests/Browser/AuthenticationTest.php @@ -8,7 +8,7 @@ use Illuminate\Foundation\Testing\DatabaseMigrations; use Laravel\Dusk\Browser; use Tests\Browser\Pages\HomePage; use Tests\DuskTestCase; -use Toby\Models\User; +use Toby\Eloquent\Models\User; class AuthenticationTest extends DuskTestCase { diff --git a/tests/Feature/AuthenticationTest.php b/tests/Feature/AuthenticationTest.php index 37b138e..1a53c57 100644 --- a/tests/Feature/AuthenticationTest.php +++ b/tests/Feature/AuthenticationTest.php @@ -6,7 +6,7 @@ namespace Tests\Feature; use Illuminate\Foundation\Testing\DatabaseMigrations; use Tests\FeatureTestCase; -use Toby\Models\User; +use Toby\Eloquent\Models\User; class AuthenticationTest extends FeatureTestCase { diff --git a/tests/Feature/InertiaTest.php b/tests/Feature/InertiaTest.php index 566220c..adafed6 100644 --- a/tests/Feature/InertiaTest.php +++ b/tests/Feature/InertiaTest.php @@ -7,7 +7,7 @@ namespace Tests\Feature; use Illuminate\Foundation\Testing\DatabaseMigrations; use Inertia\Testing\AssertableInertia as Assert; use Tests\FeatureTestCase; -use Toby\Models\User; +use Toby\Eloquent\Models\User; class InertiaTest extends FeatureTestCase { diff --git a/tests/Feature/SelectYearPeriodTest.php b/tests/Feature/SelectYearPeriodTest.php index ef40190..6c4880f 100644 --- a/tests/Feature/SelectYearPeriodTest.php +++ b/tests/Feature/SelectYearPeriodTest.php @@ -7,8 +7,8 @@ namespace Tests\Feature; use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Support\Carbon; use Tests\FeatureTestCase; -use Toby\Helpers\YearPeriodRetriever; -use Toby\Models\User; +use Toby\Eloquent\Helpers\YearPeriodRetriever; +use Toby\Eloquent\Models\User; class SelectYearPeriodTest extends FeatureTestCase { diff --git a/tests/Feature/UserTest.php b/tests/Feature/UserTest.php index cbf1277..5738b51 100644 --- a/tests/Feature/UserTest.php +++ b/tests/Feature/UserTest.php @@ -8,8 +8,8 @@ use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Support\Carbon; use Inertia\Testing\AssertableInertia as Assert; use Tests\FeatureTestCase; -use Toby\Enums\EmploymentForm; -use Toby\Models\User; +use Toby\Domain\EmploymentForm; +use Toby\Eloquent\Models\User; class UserTest extends FeatureTestCase { @@ -34,21 +34,21 @@ class UserTest extends FeatureTestCase public function testAdminCanSearchUsersList(): void { User::factory([ - "first_name" => "Test", - "last_name" => "User1", - ])->create(); + "first_name" => "Test", + "last_name" => "User1", + ])->create(); User::factory([ - "first_name" => "Test", - "last_name" => "User2", - ])->create(); + "first_name" => "Test", + "last_name" => "User2", + ])->create(); User::factory([ - "first_name" => "Test", - "last_name" => "User3", - ])->create(); + "first_name" => "Test", + "last_name" => "User3", + ])->create(); $admin = User::factory([ - "first_name" => "John", - "last_name" => "Doe", - ])->create(); + "first_name" => "John", + "last_name" => "Doe", + ])->create(); $this->assertDatabaseCount("users", 4); diff --git a/tests/Feature/VacationLimitTest.php b/tests/Feature/VacationLimitTest.php index 7e62fa7..e57e9e3 100644 --- a/tests/Feature/VacationLimitTest.php +++ b/tests/Feature/VacationLimitTest.php @@ -7,8 +7,8 @@ namespace Tests\Feature; use Illuminate\Foundation\Testing\DatabaseMigrations; use Inertia\Testing\AssertableInertia as Assert; use Tests\FeatureTestCase; -use Toby\Models\User; -use Toby\Models\VacationLimit; +use Toby\Eloquent\Models\User; +use Toby\Eloquent\Models\VacationLimit; class VacationLimitTest extends FeatureTestCase { diff --git a/tests/Traits/InteractsWithYearPeriods.php b/tests/Traits/InteractsWithYearPeriods.php index fb74ab3..982cc7f 100644 --- a/tests/Traits/InteractsWithYearPeriods.php +++ b/tests/Traits/InteractsWithYearPeriods.php @@ -6,8 +6,8 @@ namespace Tests\Traits; use Illuminate\Foundation\Testing\Concerns\InteractsWithSession; use Illuminate\Support\Carbon; -use Toby\Helpers\YearPeriodRetriever; -use Toby\Models\YearPeriod; +use Toby\Eloquent\Helpers\YearPeriodRetriever; +use Toby\Eloquent\Models\YearPeriod; trait InteractsWithYearPeriods { diff --git a/tests/Unit/AvatarTest.php b/tests/Unit/AvatarTest.php index bc32844..2c13d21 100644 --- a/tests/Unit/AvatarTest.php +++ b/tests/Unit/AvatarTest.php @@ -8,7 +8,7 @@ use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Support\Facades\Storage; use Tests\TestCase; use Tests\Traits\InteractsWithYearPeriods; -use Toby\Models\User; +use Toby\Eloquent\Models\User; class AvatarTest extends TestCase { diff --git a/tests/Unit/CheckYearPeriodTest.php b/tests/Unit/CheckYearPeriodTest.php index b258e84..b632fac 100644 --- a/tests/Unit/CheckYearPeriodTest.php +++ b/tests/Unit/CheckYearPeriodTest.php @@ -8,7 +8,7 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Carbon; use Tests\TestCase; use Tests\Traits\InteractsWithYearPeriods; -use Toby\Jobs\CheckYearPeriod; +use Toby\Infrastructure\Jobs\CheckYearPeriod; class CheckYearPeriodTest extends TestCase { diff --git a/tests/Unit/VacationLimitTest.php b/tests/Unit/VacationLimitTest.php index 7b2d7a9..726e248 100644 --- a/tests/Unit/VacationLimitTest.php +++ b/tests/Unit/VacationLimitTest.php @@ -7,8 +7,8 @@ namespace Tests\Unit; use Illuminate\Foundation\Testing\DatabaseMigrations; use Tests\TestCase; use Tests\Traits\InteractsWithYearPeriods; -use Toby\Models\User; -use Toby\Models\YearPeriod; +use Toby\Eloquent\Models\User; +use Toby\Eloquent\Models\YearPeriod; class VacationLimitTest extends TestCase { diff --git a/tests/Unit/YearPeriodRetrieverTest.php b/tests/Unit/YearPeriodRetrieverTest.php index a6a82c4..7b18aa9 100644 --- a/tests/Unit/YearPeriodRetrieverTest.php +++ b/tests/Unit/YearPeriodRetrieverTest.php @@ -9,8 +9,8 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Carbon; use Tests\TestCase; use Tests\Traits\InteractsWithYearPeriods; -use Toby\Helpers\YearPeriodRetriever; -use Toby\Models\YearPeriod; +use Toby\Eloquent\Helpers\YearPeriodRetriever; +use Toby\Eloquent\Models\YearPeriod; class YearPeriodRetrieverTest extends TestCase {