68 lines
2.2 KiB
PHP
68 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Template;
|
|
|
|
class TemplateApiController extends Controller
|
|
{
|
|
// Ambil semua template
|
|
public function index()
|
|
{
|
|
$templates = Template::with('kategori')->get();
|
|
|
|
$transformedTemplates = $templates->map(function ($template) {
|
|
return [
|
|
'id' => $template->id,
|
|
'nama_template' => $template->nama_template,
|
|
'slug' => $template->slug,
|
|
'harga' => $template->harga,
|
|
'paket' => $template->paket,
|
|
'kategori' => $template->kategori ? $template->kategori->nama : null,
|
|
'foto' => $template->foto ? asset('storage/' . $template->foto) : null,
|
|
];
|
|
});
|
|
|
|
return response()->json($transformedTemplates);
|
|
}
|
|
|
|
// Ambil detail template tertentu
|
|
public function show(Template $template)
|
|
{
|
|
return response()->json([
|
|
'id' => $template->id,
|
|
'nama_template' => $template->nama_template,
|
|
'harga' => $template->harga,
|
|
'paket' => $template->paket,
|
|
'kategori' => $template->kategori ? $template->kategori->nama : null,
|
|
'foto' => $template->foto ? asset('storage/' . $template->foto) : null,
|
|
]);
|
|
}
|
|
public function getByCategory($id)
|
|
{
|
|
$templates = Template::with('fiturs', 'kategori')
|
|
->where('kategori_id', $id)
|
|
->get();
|
|
|
|
$transformed = $templates->map(function($template) {
|
|
return [
|
|
'id' => $template->id,
|
|
'nama_template' => $template->nama_template,
|
|
'harga' => $template->harga,
|
|
'paket' => $template->paket,
|
|
'kategori' => $template->kategori ? [
|
|
'id' => $template->kategori->id,
|
|
'nama' => $template->kategori->nama
|
|
] : null,
|
|
'foto' => $template->foto ? asset('storage/' . $template->foto) : null,
|
|
'fiturs' => $template->fiturs ?? [],
|
|
];
|
|
});
|
|
|
|
return response()->json($transformed);
|
|
}
|
|
|
|
|
|
}
|