54 lines
1.3 KiB
PHP
54 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\Content;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Validation\Rule;
|
|
use Illuminate\Http\JsonResponse;
|
|
|
|
use App\Enums\TaxonomyType;
|
|
use App\Models\Taxonomy;
|
|
use App\Http\Resources\TaxonomyResource;
|
|
|
|
class TaxonomyController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*/
|
|
public function index(Request $request): JsonResponse
|
|
{
|
|
$validated = $request->validate([
|
|
'type' => ['nullable', Rule::enum(TaxonomyType::class)],
|
|
]);
|
|
|
|
$taxonomies = Taxonomy::query()
|
|
->when(
|
|
isset($validated['type']),
|
|
fn ($query) => $query->where('type', $validated['type'])
|
|
)
|
|
->get();
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'data' => [
|
|
'taxonomies' => TaxonomyResource::collection($taxonomies),
|
|
],
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*/
|
|
public function show(Taxonomy $taxonomy): JsonResponse
|
|
{
|
|
return response()->json([
|
|
'success' => true,
|
|
'data' => [
|
|
'taxonomy' => new TaxonomyResource($taxonomy),
|
|
],
|
|
]);
|
|
}
|
|
|
|
}
|