105 lines
2.9 KiB
PHP
105 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Kategori;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Validator;
|
|
use Inertia\Inertia;
|
|
|
|
class CategoryController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
return Inertia::render('Admin/Category', []);
|
|
}
|
|
|
|
public function getKategori(Request $request)
|
|
{
|
|
try {
|
|
//code...
|
|
$kategori = Kategori::with(['module'])->orderBy('created_at', 'DESC');
|
|
|
|
if ($request->has('search')) {
|
|
$kategori->where('nama', 'like', '%' . $request->search . '%');
|
|
}
|
|
|
|
return response()->json([
|
|
"status" => "success",
|
|
"message" => "Data kategori berhasil diambil",
|
|
"result" => $kategori->paginate(10)
|
|
], 200);
|
|
} catch (\Throwable $th) {
|
|
//throw $th;
|
|
return response()->json([
|
|
"status" => "error",
|
|
"message" => $th->getMessage(),
|
|
], 400);
|
|
}
|
|
}
|
|
|
|
public function storeKategori(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'name' => 'required|string|max:50',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return response()->json(['message' => 'Validation failed', 'errors' => $validator->errors()->first()], 400);
|
|
}
|
|
|
|
$data = new Kategori;
|
|
$data->nama = $request->name;
|
|
|
|
$data->save();
|
|
|
|
// Berikan respon dengan data yang berhasil dibuat
|
|
return response()->json(['message' => 'Data created successfully', 'data' => $data], 201);
|
|
}
|
|
|
|
public function updateKategori(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'id' => 'required',
|
|
'name' => 'required|string|max:50',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return response()->json(['message' => 'Validation failed', 'errors' => $validator->errors()->first()], 400);
|
|
}
|
|
|
|
$data = Kategori::find($request->id);
|
|
|
|
if (!$data) {
|
|
return response()->json(['message' => 'Data not found'], 404);
|
|
}
|
|
|
|
$data->nama = $request->name;
|
|
|
|
$data->save();
|
|
|
|
return response()->json(['message' => 'Data updated successfully', 'data' => $data], 200);
|
|
}
|
|
|
|
public function deleteKategori(Request $request)
|
|
{
|
|
$data = Kategori::find($request->id);
|
|
|
|
if (!$data) {
|
|
return response()->json(['message' => 'Data not found'], 404);
|
|
}
|
|
|
|
try {
|
|
//code...
|
|
$data->delete();
|
|
} catch (\Throwable $th) {
|
|
//throw $th;
|
|
return response()->json(['message' => "Data kategori tidak dapat dihapus"], 400);
|
|
}
|
|
|
|
|
|
return response()->json(['message' => 'Data deleted successfully'], 200);
|
|
}
|
|
}
|