<?php
namespace App\Http\Controllers;
use App\Models\Rank;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class RankController extends Controller
{
/**
* Display a listing of the resource.
*/
public $breadcrumbs;
public $menu = "rank";
public function index()
{
//
if(!Auth()->user()->can('view '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$breadcrumbs = $this->breadcrumbs;
$title = "Rank";
$url = "rank";
$menu = $this->menu;
// $datas = ApiTools::all();
$datas = Rank::get();
// dd($datas);
return view('pages.rank.index', compact('title', 'url', 'menu', 'datas', 'breadcrumbs'));
}
public function RankList() {
// $datas = ApiTools::all();
$datas = Rank::get();
// dd($datas);
return view('pages.rank.rank_list', compact('datas'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
if(!Auth()->user()->can('create '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$breadcrumbs = $this->breadcrumbs;
$title = "Rank";
$url = "rank";
$menu = $this->menu;
return view('pages.rank.create', compact('title', 'url', 'menu', 'breadcrumbs'));
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
// $table->text('headers')->nullable();
// $table->text('body')->nullable();
// $table->text('response')->nullable();
if(!Auth()->user()->can('create '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$validatedData = $request->validate([
'nama' => 'required',
'deskripsi' => 'required',
'maximal_target' => 'required',
'foto' => 'required',
], [
'nama.required' => 'Nama Rank wajib diisi!',
'deskripsi.required' => 'Deksripsi Fungsi wajib diisi!',
'maximal_target.required' => 'Maximal Target Wajib diisi!',
'foto.required' => 'Foto Rank wajib diisi!',
]);
// dd($request->file('foto'));
DB::beginTransaction();
try {
$data = Rank::create([
'nama' => $request->nama,
'deskripsi' => $request->deskripsi,
'maximal_target' => $request->maximal_target,
'foto' => 'storage/'.$request->foto->store('rank', 'public'),
]);
DB::commit();
return redirect()->route('rank.index')->with('success','Berhasil menambah Data Rank.');
} catch (\Throwable $th) {
//throw $th;
DB::rollback();
Log::error($th);
return back()->with('error','Gagal menambah Rank : ' . $th->getMessage())->withInput();
}
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
if(!Auth()->user()->can('edit '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$breadcrumbs = $this->breadcrumbs;
$title = "Rank";
$url = "rank";
$menu = $this->menu;
$data = Rank::find($id);
return view('pages.rank.edit', compact('title', 'url', 'menu', 'data', 'breadcrumbs'));
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
if(!Auth()->user()->can('create '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$validatedData = $request->validate([
'nama' => 'required',
'deskripsi' => 'required',
'maximal_target' => 'required',
], [
'nama.required' => 'Nama Rank wajib diisi!',
'deskripsi.required' => 'Deksripsi Fungsi wajib diisi!',
'maximal_target.required' => 'Maximal Target Wajib diisi!',
]);
// dd($request->file('foto'));
DB::beginTransaction();
try {
$data = Rank::find($id);
$data->nama = $request->nama;
$data->deskripsi = $request->deskripsi;
$data->maximal_target = $request->maximal_target;
if(isset($request->foto)) {
$data->foto = 'storage/'.$request->foto->store('rank', 'public');
}
$data->save();
DB::commit();
return redirect()->route('rank.index')->with('success','Berhasil merubah Data Rank.');
} catch (\Throwable $th) {
//throw $th;
DB::rollback();
Log::error($th);
return back()->with('error','Gagal merubah Rank : ' . $th->getMessage())->withInput();
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
if(!Auth()->user()->can('delete '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$title = "Rank";
DB::beginTransaction();
try {
$api = Rank::find($id);
$api->delete();
DB::commit();
return redirect()->route('rank.index')->with('success','Berhasil menghapus '.$title);
} catch (\Throwable $th) {
//throw $th;
DB::rollback();
Log::error($th);
return redirect()->route('rank.index')->with('error','Gagal menghapus '.$title.' : ' . $th->getMessage());
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]