castopod/app/Controllers/HomeController.php

39 lines
1.1 KiB
PHP
Raw Normal View History

<?php
/**
* @copyright 2020 Podlibre
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
namespace App\Controllers;
use App\Models\PodcastModel;
use CodeIgniter\HTTP\RedirectResponse;
use mysqli_sql_exception;
class HomeController extends BaseController
{
public function index(): RedirectResponse | string
{
try {
$allPodcasts = (new PodcastModel())->findAll();
} catch (mysqli_sql_exception) {
// An error was caught when retrieving the podcasts from the database.
// Redirecting to install page because it is likely that Castopod Host has not been installed yet.
return redirect()->route('install');
}
// check if there's only one podcast to redirect user to it
if (count($allPodcasts) === 1) {
return redirect()->route('podcast-activity', [$allPodcasts[0]->name]);
}
// default behavior: list all podcasts on home page
$data = [
'podcasts' => $allPodcasts,
];
return view('home', $data);
}
}