From 372e1ab2c153ba52fbd2f02ba3fc4deee5046bd0 Mon Sep 17 00:00:00 2001 From: Vic Luijkx Date: Mon, 8 Jan 2024 09:38:20 +0100 Subject: [PATCH] Rename `locale` to `site` on redirects table (#156) * Fix validation for eloquent redirects * Revert "Fix validation for eloquent redirects" This reverts commit dbff7f09612a542c0eb75675986e322d1cdd0272. * Fix error on site creation * Use site column in `findByUrl` query --- .../create_eloquent_redirect_table.php.stub | 2 +- src/Eloquent/Redirects/RedirectRepository.php | 10 ++++---- src/RedirectServiceProvider.php | 4 +++- .../RenameLocaleToSiteOnRedirectsTable.php | 24 +++++++++++++++++++ 4 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 src/UpdateScripts/RenameLocaleToSiteOnRedirectsTable.php diff --git a/database/migrations/create_eloquent_redirect_table.php.stub b/database/migrations/create_eloquent_redirect_table.php.stub index 33f5d1b..e718719 100644 --- a/database/migrations/create_eloquent_redirect_table.php.stub +++ b/database/migrations/create_eloquent_redirect_table.php.stub @@ -15,7 +15,7 @@ class CreateEloquentRedirectTable extends Migration $table->string('destination'); $table->char('match_type', 10); $table->char('type', 10); - $table->string('locale'); + $table->string('site')->index(); $table->integer('order')->nullable(); $table->boolean('enabled'); $table->timestamps(); diff --git a/src/Eloquent/Redirects/RedirectRepository.php b/src/Eloquent/Redirects/RedirectRepository.php index 6611dd5..b7f6126 100644 --- a/src/Eloquent/Redirects/RedirectRepository.php +++ b/src/Eloquent/Redirects/RedirectRepository.php @@ -33,7 +33,7 @@ public function findByUrl(string $siteHandle, string $url): ?Redirect { return $this->query() ->where('enabled', true) - ->where('locale', $siteHandle) + ->where('site', $siteHandle) ->orderBy('order') ->get() ->map(function (Redirect $redirect) use ($url) { @@ -87,7 +87,7 @@ public function make(): Redirect { return new Redirect(); } - + public static function fromModel(Model $model) { return (new Redirect) @@ -98,9 +98,9 @@ public static function fromModel(Model $model) ->matchType($model->match_type) ->enabled($model->enabled) ->order($model->order) - ->locale($model->locale); + ->locale($model->site); } - + private function toModel(Redirect $redirect) { return RedirectModel::firstOrNew([ @@ -112,7 +112,7 @@ private function toModel(Redirect $redirect) 'type' => $redirect->type(), 'enabled' => $redirect->enabled(), 'order' => $redirect->order(), - 'locale' => $redirect->locale(), + 'site' => $redirect->locale(), ]); } } diff --git a/src/RedirectServiceProvider.php b/src/RedirectServiceProvider.php index 593a0ed..5913f2f 100644 --- a/src/RedirectServiceProvider.php +++ b/src/RedirectServiceProvider.php @@ -20,6 +20,7 @@ use Rias\StatamicRedirect\UpdateScripts\AddHitsCount; use Rias\StatamicRedirect\UpdateScripts\ClearErrors; use Rias\StatamicRedirect\UpdateScripts\MoveRedirectsToDefaultSite; +use Rias\StatamicRedirect\UpdateScripts\RenameLocaleToSiteOnRedirectsTable; use Rias\StatamicRedirect\Widgets\ErrorsLastDayWidget; use Rias\StatamicRedirect\Widgets\ErrorsLastMonthWidget; use Rias\StatamicRedirect\Widgets\ErrorsLastWeekWidget; @@ -39,6 +40,7 @@ class RedirectServiceProvider extends AddonServiceProvider AddHitsCount::class, ClearErrors::class, MoveRedirectsToDefaultSite::class, + RenameLocaleToSiteOnRedirectsTable::class, ]; protected $scripts = [ @@ -90,7 +92,7 @@ public function boot() __DIR__ . '/../database/migrations/create_redirect_tables.php.stub' => database_path('migrations/' . date('Y_m_d_His', time()) . '_create_redirect_tables.php'), ], 'migrations'); } - + if (! class_exists('CreateEloquentRedirectTable')) { $this->publishes([ __DIR__ . '/../database/migrations/create_eloquent_redirect_table.php.stub' => database_path('migrations/' . date('Y_m_d_His', time()) . '_create_eloquent_redirect_table.php'), diff --git a/src/UpdateScripts/RenameLocaleToSiteOnRedirectsTable.php b/src/UpdateScripts/RenameLocaleToSiteOnRedirectsTable.php new file mode 100644 index 0000000..6a2dfcc --- /dev/null +++ b/src/UpdateScripts/RenameLocaleToSiteOnRedirectsTable.php @@ -0,0 +1,24 @@ +renameColumn('locale', 'site'); + $table->index(['site']); + }); + + $this->console()->info('Column renamed succesfully!'); + } +}