$id_module ]); } public function moduleDetail($id) { return Inertia::render('Admin/ModuleDetail', [ 'id' => $id ]); } public function inputMateri($id) { $data = Materi::findOrFail($id); return Inertia::render('Admin/InputMateri', [ "data" => $data ]); } public function getModule(Request $request) { try { //code... $data = Module::where('kategori_id', $request->id)->orderBy('created_at', 'DESC'); if ($request->has('search')) { $data->where('name', 'like', '%' . $request->search . '%'); } return response()->json([ "status" => "success", "message" => "Data module berhasil diambil", "result" => $data->paginate(10) ], 200); } catch (\Throwable $th) { //throw $th; return response()->json([ "status" => "error", "message" => $th->getMessage(), ], 400); } } public function storeModule(Request $request) { $validator = Validator::make($request->all(), [ 'id_category' => 'required', 'name' => 'required|string|max:50', 'description' => 'required|string', ]); if ($validator->fails()) { return response()->json(['message' => 'Validation failed', 'errors' => $validator->errors()->first()], 400); } $data = new Module; $data->name = $request->name; $data->description = $request->description; $data->kategori_id = $request->id_category; $data->save(); // Berikan respon dengan data yang berhasil dibuat return response()->json(['message' => 'Data created successfully', 'data' => $data], 201); } public function updateModule(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required', 'id_category' => 'required', 'name' => 'required|string|max:50', 'description' => 'required|string', ]); if ($validator->fails()) { return response()->json(['message' => 'Validation failed', 'errors' => $validator->errors()->first()], 400); } $data = Module::find($request->id); if (!$data) { return response()->json(['message' => 'Data not found'], 404); } $data->name = $request->name; $data->description = $request->description; $data->kategori_id = $request->id_category; $data->save(); return response()->json(['message' => 'Data updated successfully', 'data' => $data], 200); } public function deleteModule(Request $request) { $data = Module::find($request->id); if (!$data) { return response()->json(['message' => 'Data not found'], 404); } $data->delete(); return response()->json(['message' => 'Data deleted successfully'], 200); } public function getMateri(Request $request) { try { //code... $data = Materi::with(['riwayat_kuis' => function($q){ $q->orderBy('skor', 'desc'); }, 'riwayat_kuis.user'])->where('module_id', $request->id)->orderBy('created_at', 'DESC'); if ($request->has('search')) { $data->where('name', 'like', '%' . $request->search . '%'); } return response()->json([ "status" => "success", "message" => "Data materi berhasil diambil", "result" => $data->paginate(10) ], 200); } catch (\Throwable $th) { //throw $th; return response()->json([ "status" => "error", "message" => $th->getMessage(), ], 400); } } public function storeMateri(Request $request) { $validator = Validator::make($request->all(), [ 'id_module' => 'required', 'name' => 'required|string|max:50', 'category' => 'required', ]); if ($validator->fails()) { return response()->json(['message' => 'Validation failed', 'errors' => $validator->errors()->first()], 400); } $data = new Materi; $data->module_id = $request->id_module; $data->name = $request->name; $data->kategori = $request->category; $data->save(); // Berikan respon dengan data yang berhasil dibuat return response()->json(['message' => 'Data created successfully', 'data' => $data], 201); } public function updateMateri(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required', 'name' => 'required|string|max:50', 'category' => 'required', ]); if ($validator->fails()) { return response()->json(['message' => 'Validation failed', 'errors' => $validator->errors()->first()], 400); } $data = Materi::find($request->id); if (!$data) { return response()->json(['message' => 'Data not found'], 404); } $data->name = $request->name; $data->kategori = $request->category; $data->save(); return response()->json(['message' => 'Data updated successfully', 'data' => $data], 200); } public function deleteMateri(Request $request) { $data = Materi::find($request->id); if (!$data) { return response()->json(['message' => 'Data not found'], 404); } $data->delete(); return response()->json(['message' => 'Data deleted successfully'], 200); } public function inputDataMateri(Request $request) { if ($request->hasFile('file')) { $validator = Validator::make($request->all(), [ 'id' => 'required', 'file' => 'required|file|max:8000', ]); } else { $validator = Validator::make($request->all(), [ 'id' => 'required', ]); } if ($validator->fails()) { return response()->json(['message' => 'Validation failed', 'errors' => $validator->errors()->first()], 400); } $data = Materi::find($request->id); $data->materi = $request->materi; if ($request->hasFile('file')) { $file = $request->file('file'); $name = time() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('uploads/materi'), $name); $link = url('uploads/materi/' . $name); $data->video = $link; } else { $data->video = $request->video; } $data->save(); // Berikan respon dengan data yang berhasil dibuat return response()->json(['message' => 'Data created successfully', 'data' => $data], 201); } public function likeMateri(Request $request) { $data = Materi::find($request->id); if (!$data) { return response()->json(['message' => 'Data not found'], 404); } $like = Likes::where('materi_id', $request->id)->where('user_id', $request->id_user)->first(); if ($like) { $like->delete(); return response()->json(['message' => 'Data disliked successfully'], 200); } $like = new Likes; $like->materi_id = $request->id; $like->user_id = $request->id_user; $like->save(); return response()->json(['message' => 'Data liked successfully', 'data' => $like], 201); } }