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;
 | |
|     }
 | |
| }
 |