diff --git a/backend/app/Http/Controllers/KategoriController.php b/backend/app/Http/Controllers/KategoriController.php new file mode 100644 index 0000000..9f85398 --- /dev/null +++ b/backend/app/Http/Controllers/KategoriController.php @@ -0,0 +1,64 @@ +json(Kategori::all(), 200); + } + + public function show(Kategori $kategori) + { + return response()->json($kategori, 200); + } + + public function store(Request $request) + { + $request->validate([ + 'nama' => 'required', + 'deskripsi' => 'nullable', + 'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:2048' + ]); + + $data = $request->all(); + if ($request->hasFile('foto')) { + $data['foto'] = $request->file('foto')->store('kategori', 'public'); + } + + $kategori = Kategori::create($data); + + return response()->json($kategori, 201); + } + + public function update(Request $request, Kategori $kategori) + { + $request->validate([ + 'nama' => 'required', + 'deskripsi' => 'nullable', + 'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:2048' + ]); + + $data = $request->all(); + if ($request->hasFile('foto')) { + if ($kategori->foto) Storage::disk('public')->delete($kategori->foto); + $data['foto'] = $request->file('foto')->store('kategori', 'public'); + } + + $kategori->update($data); + + return response()->json($kategori, 200); + } + + public function destroy(Kategori $kategori) + { + if ($kategori->foto) Storage::disk('public')->delete($kategori->foto); + $kategori->delete(); + + return response()->json(['message' => 'Kategori berhasil dihapus'], 200); + } +} diff --git a/backend/app/Models/Kategori.php b/backend/app/Models/Kategori.php new file mode 100644 index 0000000..8787927 --- /dev/null +++ b/backend/app/Models/Kategori.php @@ -0,0 +1,18 @@ +hasMany(Template::class); + } +} diff --git a/backend/database/migrations/2025_09_01_045812_create_kategoris_table.php b/backend/database/migrations/2025_09_01_045812_create_kategoris_table.php new file mode 100644 index 0000000..3767952 --- /dev/null +++ b/backend/database/migrations/2025_09_01_045812_create_kategoris_table.php @@ -0,0 +1,22 @@ +id(); + $table->string('nama'); + $table->text('deskripsi')->nullable(); + $table->string('foto')->nullable(); + $table->timestamps(); + }); + } + + public function down(): void { + Schema::dropIfExists('kategoris'); + } +}; diff --git a/backend/resources/views/admin/auth/login.blade.php b/backend/resources/views/admin/auth/login.blade.php index 4819afe..6e5a581 100644 --- a/backend/resources/views/admin/auth/login.blade.php +++ b/backend/resources/views/admin/auth/login.blade.php @@ -74,7 +74,7 @@
Selamat datang! Silakan masukkan detail Anda.
+Silakan masukkan email dan password anda.
@if ($errors->any())