From b0903a4fcb6289f44f05af067063c6890ddc3f2f Mon Sep 17 00:00:00 2001 From: Kilian Trunk Date: Sat, 16 Aug 2025 12:17:15 +0200 Subject: [PATCH 1/6] feat(currency-seeder): implement currency seeder --- database/seeders/CurrencySeeder.php | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 database/seeders/CurrencySeeder.php diff --git a/database/seeders/CurrencySeeder.php b/database/seeders/CurrencySeeder.php new file mode 100644 index 0000000..a1eaf30 --- /dev/null +++ b/database/seeders/CurrencySeeder.php @@ -0,0 +1,40 @@ + 'EUR', + 'name' => 'Euro', + 'is_active' => true, + ], + [ + 'id' => 'USD', + 'name' => 'US Dollar', + 'is_active' => true, + ], + [ + 'id' => 'GBP', + 'name' => 'British Pound', + 'is_active' => true, + ], + ]; + + foreach ($currencies as $currency) { + Currency::firstOrCreate( + ['id' => $currency['id']], + $currency + ); + } + } +} From 354ab03be0d6548ca6b822acbb07c1b15d41926b Mon Sep 17 00:00:00 2001 From: Kilian Trunk Date: Sat, 16 Aug 2025 16:33:33 +0200 Subject: [PATCH 2/6] refactor(world): refactor jobs to use Http instead of file_get_contents --- src/Jobs/ImportCountries.php | 11 +++++++++-- src/Jobs/ImportCurrencies.php | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Jobs/ImportCountries.php b/src/Jobs/ImportCountries.php index 1868b61..404a88c 100644 --- a/src/Jobs/ImportCountries.php +++ b/src/Jobs/ImportCountries.php @@ -7,6 +7,7 @@ use Eclipse\World\Models\Region; use Exception; use Illuminate\Support\Carbon; +use Illuminate\Support\Facades\Http; class ImportCountries extends QueueableJob { @@ -23,10 +24,16 @@ protected function execute(): void $existingCountries = Country::withTrashed()->get()->keyBy('id'); // Load new country data - $countries = json_decode(file_get_contents('https://raw.githubusercontent.com/mledoze/countries/master/dist/countries.json'), true); + $response = Http::get('https://raw.githubusercontent.com/mledoze/countries/master/dist/countries.json'); + + if (! $response->successful()) { + throw new Exception('Failed to fetch countries data: '.$response->status()); + } + + $countries = $response->json(); if (! $countries) { - throw new Exception('Failed to fetch or parse countries data'); + throw new Exception('Failed to parse countries data'); } foreach ($countries as $rawData) { diff --git a/src/Jobs/ImportCurrencies.php b/src/Jobs/ImportCurrencies.php index 9436ed9..5f83f3d 100644 --- a/src/Jobs/ImportCurrencies.php +++ b/src/Jobs/ImportCurrencies.php @@ -5,6 +5,7 @@ use Eclipse\Common\Foundation\Jobs\QueueableJob; use Eclipse\World\Models\Currency; use Exception; +use Illuminate\Support\Facades\Http; class ImportCurrencies extends QueueableJob { @@ -18,10 +19,16 @@ protected function execute(): void $existingCurrencies = Currency::withTrashed()->get()->keyBy('id'); // Load new currency data from REST Countries API - $countries = json_decode(file_get_contents('https://raw.githubusercontent.com/mledoze/countries/master/dist/countries.json'), true); + $response = Http::get('https://raw.githubusercontent.com/mledoze/countries/master/dist/countries.json'); + + if (! $response->successful()) { + throw new Exception('Failed to fetch countries data: '.$response->status()); + } + + $countries = $response->json(); if (! $countries) { - throw new Exception('Failed to fetch or parse countries data'); + throw new Exception('Failed to parse countries data'); } $processedCurrencies = []; From 50655f18ff3deb886c4cd6baa48f5d8bd743559c Mon Sep 17 00:00:00 2001 From: Kilian Trunk Date: Fri, 22 Aug 2025 09:35:22 +0200 Subject: [PATCH 3/6] chore: add World seeder --- database/seeders/CurrencySeeder.php | 2 +- database/seeders/WorldSeeder.php | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 database/seeders/WorldSeeder.php diff --git a/database/seeders/CurrencySeeder.php b/database/seeders/CurrencySeeder.php index a1eaf30..5641619 100644 --- a/database/seeders/CurrencySeeder.php +++ b/database/seeders/CurrencySeeder.php @@ -1,6 +1,6 @@ call(CurrencySeeder::class); + } +} From 2daee57faf18e65fab7845f700cb0cda70572c78 Mon Sep 17 00:00:00 2001 From: Kilian Trunk Date: Fri, 22 Aug 2025 09:37:59 +0200 Subject: [PATCH 4/6] fix: change namespace based on composer autoload config --- database/seeders/CurrencySeeder.php | 2 +- database/seeders/WorldSeeder.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/database/seeders/CurrencySeeder.php b/database/seeders/CurrencySeeder.php index 5641619..a1eaf30 100644 --- a/database/seeders/CurrencySeeder.php +++ b/database/seeders/CurrencySeeder.php @@ -1,6 +1,6 @@ Date: Fri, 22 Aug 2025 09:41:20 +0200 Subject: [PATCH 5/6] fix: re-run tests --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index f047f36..dbc1f52 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ } }, "minimum-stability": "dev", - "prefer-stable": true, + "prefer-stable": true,. "autoload": { "psr-4": { "Eclipse\\World\\": "src/", From 738c040780748ed7cb1f1de2463ee660060d6b5b Mon Sep 17 00:00:00 2001 From: Kilian Trunk Date: Fri, 22 Aug 2025 09:41:29 +0200 Subject: [PATCH 6/6] Revert "fix: re-run tests" This reverts commit 9f778f2b6af215ee502dcba9d8058b73d1e1b2f8. --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index dbc1f52..f047f36 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ } }, "minimum-stability": "dev", - "prefer-stable": true,. + "prefer-stable": true, "autoload": { "psr-4": { "Eclipse\\World\\": "src/",