tissue/app/Http/Controllers/Api/CardController.php

32 lines
756 B
PHP

<?php
namespace App\Http\Controllers\Api;
use App\MetadataResolver\DeniedHostException;
use App\Services\MetadataResolveService;
use Illuminate\Http\Request;
class CardController
{
public function show(Request $request, MetadataResolveService $service)
{
$request->validate([
'url:required|url'
]);
try {
$metadata = $service->execute($request->input('url'));
} catch (DeniedHostException $e) {
abort(403, $e->getMessage());
}
$metadata->load('tags');
$response = response($metadata);
if (!config('app.debug')) {
$response = $response->setCache(['public' => true, 'max_age' => 86400]);
}
return $response;
}
}