Paul Couture
c4398c641e
Prepping for launch. Reviewed-on: #1 Co-authored-by: Paul Couture <paul@paulcouture.com> Co-committed-by: Paul Couture <paul@paulcouture.com>
61 lines
1.8 KiB
PHP
61 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use Illuminate\Console\Command;
|
|
use Illuminate\Support\Facades\Http;
|
|
use App\Models\Artwork;
|
|
use App\Models\Episode;
|
|
|
|
class MapLegacyArtworkToLegacyEpisodeCommand extends Command
|
|
{
|
|
/**
|
|
* The name and signature of the console command.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $signature = 'naart:map-legacy';
|
|
|
|
/**
|
|
* The console command description.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $description = 'Maps legacy artwork to the legacy episode it related to.';
|
|
|
|
/**
|
|
* Execute the console command.
|
|
*/
|
|
public function handle()
|
|
{
|
|
$artworks = Artwork::whereNotNull('legacy_id')->get();
|
|
foreach ($artworks as $artwork) {
|
|
if ($artwork->id > 76200) {
|
|
$legacyDetailResponse = $this->getArtworkInfoFromApi($artwork->legacy_id);
|
|
$response = $legacyDetailResponse->object();
|
|
if ($response->artwork->episode_id) {
|
|
$episode = Episode::where('legacy_id', $response->artwork->episode_id)->first();
|
|
if ($episode) {
|
|
$artwork->episode_id = $episode->id;
|
|
$this->line('Artwork ID ' . $artwork->id . ' is mapped to Episode ID ' . $episode->id);
|
|
if ($artwork->isDirty()) {
|
|
$this->line('This is a new mapping.');
|
|
$artwork->save();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private function getArtworkInfoFromApi($artwork_legacy_id) {
|
|
$response = Http::timeout(180)
|
|
->get('https://noagendaartgenerator.com/artworkapi/' . $artwork_legacy_id,
|
|
[
|
|
'p' => '7476',
|
|
]
|
|
);
|
|
return $response;
|
|
}
|
|
}
|