<?php declare(strict_types=1); /** * @copyright 2020 Ad Aures * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ */ namespace Modules\Analytics\Controllers; use App\Entities\Episode; use App\Models\EpisodeModel; use CodeIgniter\Controller; use CodeIgniter\Exceptions\PageNotFoundException; use CodeIgniter\HTTP\RedirectResponse; class EpisodeAnalyticsController extends Controller { /** * @deprecated Replaced by EpisodeAudioController::index method */ public function hit(string $base64EpisodeData, string ...$audioPath): RedirectResponse { $episodeData = unpack( 'IpodcastId/IepisodeId/IbytesThreshold/IfileSize/Iduration/IpublicationDate', base64_url_decode($base64EpisodeData), ); if ($episodeData === false) { throw PageNotFoundException::forPageNotFound(); } $episode = (new EpisodeModel())->getEpisodeById($episodeData['episodeId']); if (! $episode instanceof Episode) { throw PageNotFoundException::forPageNotFound(); } return redirect()->route( 'episode-audio', [$episode->podcast->handle, $episode->slug, $episode->audio->file_extension] ); } }