query('menu_id'); $user = Auth::user(); $userId = $user->id; // Ambil role_id yang dimiliki user $roleIds = DB::table('user_role') ->where('user_id', $userId) ->pluck('role_id'); // Ambil data akses berdasarkan role_id dan menu_id $roleAccess = DB::table('role_menu') ->whereIn('role_id', $roleIds) ->where('menu_id', $menuId) ->first(); // Pastikan roleAccess tidak null sebelum mengakses properti $creator = $roleAccess->allow_create ?? 0; $updater = $roleAccess->allow_update ?? 0; $destroyer = $roleAccess->allow_destroy ?? 0; return view("data-settings.index", compact('creator', 'updater', 'destroyer')); } /** * Show the form for creating a new resource. */ public function create() { return view("data-settings.create"); } /** * Store a newly created resource in storage. */ public function store(DataSettingRequest $request) { try{ DB::beginTransaction(); DataSetting::create($request->validated()); DB::commit(); return response()->json(['message' => 'Successfully created'],201); }catch(Exception $ex){ DB::rollBack(); return response()->json([ 'message' => 'Failed to create data setting', 'error' => $ex->getMessage() ], 500); } } /** * Display the specified resource. */ public function show(DataSetting $dataSetting) { // } /** * Show the form for editing the specified resource. */ public function edit(string $id) { try{ $data = DataSetting::findOrFail($id); if(empty($data)){ return redirect()->route('data-settings.index')->with('error', 'Invalid id'); } return view("data-settings.edit", compact("data")); }catch(Exception $ex){ return redirect()->route("data-settings.index")->with("error", "Invalid id"); } } /** * Update the specified resource in storage. */ public function update(DataSettingRequest $request,string $id) { try{ DB::beginTransaction(); $data = DataSetting::findOrFail($id); $data->update($request->validated()); DB::commit(); return response()->json(['message' => 'Successfully updated'], 200); }catch(Exception $ex){ DB::rollBack(); return response()->json(['message' => $ex->getMessage()],500); } } /** * Remove the specified resource from storage. */ public function destroy(string $id) { try{ DB::beginTransaction(); DataSetting::findOrFail($id)->delete(); DB::commit(); return response()->json(['success' => true, 'message' => 'Item deleted successfully.'], 200); }catch(Exception $e){ DB::rollBack(); Log::error($e->getMessage()); return response()->json(['success' => false, 'message' => 'Failed to delete item.'], 500); } } public function getValueSetting(Request $request){ try{ $data = DataSetting::where('key', $request->key_name)->first(); return response()->json([ 'success' => true, 'message' => "Successfully retrieved data", "data"=> $data ]); }catch(Exception $e){ return response()->json(['success' => false, 'message' => $e->getMessage()], 500); } } }