From 89ac9ffec2f742aafeefa33189edd8676977a21a Mon Sep 17 00:00:00 2001 From: Rico van Zelst Date: Thu, 9 Nov 2023 16:32:37 +0100 Subject: [PATCH] feat: cloudflare purge --- database/seeders/ChampionRolesSeeder.php | 8 +++++++- database/seeders/ChampionSeeder.php | 8 +++++++- database/seeders/ChampionSkinSeeder.php | 16 +++++++++++++--- database/seeders/SkinChromaSeeder.php | 6 ++++++ 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/database/seeders/ChampionRolesSeeder.php b/database/seeders/ChampionRolesSeeder.php index 9969bd8..4392a8f 100644 --- a/database/seeders/ChampionRolesSeeder.php +++ b/database/seeders/ChampionRolesSeeder.php @@ -16,12 +16,13 @@ class ChampionRolesSeeder extends Seeder { $roleDataUrl = 'https://cdn.merakianalytics.com/riot/lol/resources/latest/en-US/championrates.json'; $roleData = json_decode(file_get_contents($roleDataUrl), true); + $changeCount = 0; foreach ($roleData['data'] as $championId => $roles) { $rolesExists = ChampionRoles::where('champion_id', $championId)->first(); $championExists = Champion::where('champion_id', $championId)->first(); - if (! $championExists) { + if (!$championExists) { Log::info('Champion with ID ' . $championId . ' does not exist, skipping...'); continue; } @@ -45,11 +46,16 @@ class ChampionRolesSeeder extends Seeder if ($rolesExists && $this->hasAttributesChanged($rolesExists, $rolesAttributes)) { Log::info('Roles for ' . $championName . ' have changed, updating...'); $rolesExists->update($rolesAttributes); + $changeCount++; } elseif (!$rolesExists) { Log::info('New roles detected for ' . $championName . '! Creating...'); ChampionRoles::create($rolesAttributes); + $changeCount++; } } + if ($changeCount > 0) { + $this->call('cloudflare:purge'); + } } private function hasAttributesChanged($roleData, $attributes) diff --git a/database/seeders/ChampionSeeder.php b/database/seeders/ChampionSeeder.php index 6eab5c4..34180ea 100644 --- a/database/seeders/ChampionSeeder.php +++ b/database/seeders/ChampionSeeder.php @@ -15,6 +15,7 @@ class ChampionSeeder extends Seeder { $championDataUrl = 'https://cdn.merakianalytics.com/riot/lol/resources/latest/en-US/champions.json'; $championData = json_decode(file_get_contents($championDataUrl), true); + $changeCount = 0; foreach ($championData as $champion) { $championId = $champion['id']; @@ -41,11 +42,16 @@ class ChampionSeeder extends Seeder if ($championExists && $this->hasAttributesChanged($championExists, $championAttributes)) { Log::info('Champion ' . $champion['name'] . ' has changed, updating...'); $championExists->update($championAttributes); - } elseif (! $championExists) { + $changeCount++; + } elseif (!$championExists) { Log::info('New champion detected! Creating ' . $champion['name'] . '...'); Champion::create($championAttributes); + $changeCount++; } } + if ($changeCount > 0) { + $this->call('cloudflare:purge'); + } } private function hasAttributesChanged($champion, $attributes) diff --git a/database/seeders/ChampionSkinSeeder.php b/database/seeders/ChampionSkinSeeder.php index be42182..f57411c 100644 --- a/database/seeders/ChampionSkinSeeder.php +++ b/database/seeders/ChampionSkinSeeder.php @@ -15,6 +15,7 @@ class ChampionSkinSeeder extends Seeder { $championDataUrl = 'https://cdn.merakianalytics.com/riot/lol/resources/latest/en-US/champions.json'; $championData = json_decode(file_get_contents($championDataUrl), true); + $changeCount = 0; foreach ($championData as $champion) { foreach ($champion['skins'] as $skin) { @@ -52,8 +53,12 @@ class ChampionSkinSeeder extends Seeder ]; // Mundo is a special case, his skins often include his name in the skin name, so we need to remove it. - if (strpos($skinAttributes['skin_name'], 'Mundo Dr. Mundo') !== false) { - $skinAttributes['skin_name'] = str_replace('Mundo Dr. Mundo', 'Mundo', $skinAttributes['skin_name']); + if (str_contains($skinAttributes['skin_name'], 'Mundo Dr. Mundo')) { + $skinAttributes['skin_name'] = str_replace( + 'Mundo Dr. Mundo', + 'Mundo', + $skinAttributes['skin_name'] + ); } // Check if the skin already exists and if any attributes have changed, if so update the skin. If the skin doesn't exist, create it. @@ -61,11 +66,16 @@ class ChampionSkinSeeder extends Seeder if ($skinExists && $this->hasAttributesChanged($skinExists, $skinAttributes)) { Log::info('Skin ' . $skin['name'] . ' ' . $champion['name'] . ' has changed, updating...'); $skinExists->update($skinAttributes); - } elseif (! $skinExists) { + $changeCount++; + } elseif (!$skinExists) { Log::info('New skin detected! Creating ' . $skin['name'] . ' ' . $champion['name'] . '...'); ChampionSkin::create($skinAttributes); + $changeCount++; } } + if ($changeCount > 0) { + $this->call('cloudflare:purge'); + } } } diff --git a/database/seeders/SkinChromaSeeder.php b/database/seeders/SkinChromaSeeder.php index 3609bb8..997067b 100644 --- a/database/seeders/SkinChromaSeeder.php +++ b/database/seeders/SkinChromaSeeder.php @@ -15,6 +15,7 @@ class SkinChromaSeeder extends Seeder { $championDataUrl = 'https://cdn.merakianalytics.com/riot/lol/resources/latest/en-US/champions.json'; $championData = json_decode(file_get_contents($championDataUrl), true); + $changeCount = 0; foreach ($championData as $champion) { foreach ($champion['skins'] as $skin) { @@ -50,12 +51,17 @@ class SkinChromaSeeder extends Seeder if ($chromaExists && $this->hasAttributesChanged($chromaExists, $chromaAttributes)) { Log::info('Updating chroma: ' . $chromaId); $chromaExists->update($chromaAttributes); + $changeCount++; } elseif (!$chromaExists) { Log::info('Creating chroma: ' . $chromaId); SkinChroma::create($chromaAttributes); + $changeCount++; } } } + if ($changeCount > 0) { + $this->call('cloudflare:purge'); + } } }