File: //var/www/quadcode-jobs/app/Http/Controllers/SitemapController.php
<?php
namespace App\Http\Controllers;
use App\Models\LeverCategory;
use App\Models\Location;
use App\Repositories\CategoryRepository;
use App\Repositories\OfficeRepository;
use Illuminate\Http\Response;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\URL;
use Laravelium\Sitemap\Sitemap;
class SitemapController extends BaseController
{
public function sitemap(Sitemap $sitemap): Response
{
$sitemap->setCache('quadcode.sitemap', 60);
if ($sitemap->isCached()) {
return $sitemap->render();
}
$sitemap->add(URL::route('home'));
$sitemap->add(URL::route('jobs'));
$sitemap->add(URL::route('offices'));
$categories = CategoryRepository::getCategories();
foreach ($categories as $category) {
/** @var LeverCategory $category */
$sitemap->add(URL::route('category.show', [$category->id]));
}
$offices = OfficeRepository::getOffices();
foreach ($offices as $office) {
/** @var Location $office */
$sitemap->add(URL::route('office', [strtolower($office->title)]));
}
$sitemap->add(URL::route('privacy-policy'));
$sitemap->add(URL::route('term-and-conditions'));
$sitemap->add(URL::route('cookie-policy'));
$sitemap->add(URL::route('products-and-stack'));
$sitemap->add(URL::route('quadcode-life'));
return $sitemap->render();
}
}