<?php
namespace App\Http\Controllers;
use App\Models\sertifikatAtlit;
use Database\Factories\SertifikatAtlitFactory;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\File;
class SertifikatAtlitController extends Controller
{
public function show(String $id)
{
$decryptedId = Crypt::decryptString($id);
$data['sertifikat'] = sertifikatAtlit::where('atlit_id', $decryptedId)->get();
return view('users.atlit.pengalaman')->with($data);
}
public function store(Request $request)
{
$request->validate([
'sertifikat' => 'nullable|file|mimetypes:application/pdf|max:2000',
'nama_kejuaraan' => 'required',
'nomor_tanding' => 'required',
'prestasi' => 'required',
'mendali' => 'required',
], ['sertifikat.mimetypes' => 'Sertifikat haruslah berformat PDF.', 'sertifikat.max' => 'File Sertifikat tidak boleh lebih dari 2mb!']);
$data = [
'atlit_id' => $request->atlit_id,
'nama_kejuaraan' => $request->nama_kejuaraan,
'nomor_tanding' => $request->nomor_tanding,
'prestasi' => $request->prestasi,
'mendali' => $request->mendali,
];
if ($request->hasFile('sertifikat')) {
$sertifikat_file = $request->file('sertifikat');
$sertifikat_baru = "Sertifikat-" . $sertifikat_file->getClientOriginalName();
$sertifikat_file->move(public_path('documents/atlit'), $sertifikat_baru);
$data['sertifikat'] = $sertifikat_baru;
}
$create = sertifikatAtlit::create($data);
if ($create) {
return redirect()->back()->with('success', 'Data baru telah ditambahkan');
} else {
return redirect()->back()->with('error', 'Data gagal ditambahkan');
}
}
public function update(Request $request, String $id)
{
try {
$decryptedId = Crypt::decryptString($id);
$request->validate([
'sertifikat' => 'file|mimetypes:application/pdf|max:2000',
'nama_kejuaraan' => 'required',
'nomor_tanding' => 'required',
'prestasi' => 'required',
'mendali' => 'required',
], ['sertifikat.mimetypes' => 'Sertifikat haruslah berformat PDF.', 'sertifikat.max' => 'File Sertifikat tidak boleh lebih dari 2mb!']);
$data = [
'nama_kejuaraan' => $request->nama_kejuaraan,
'nomor_tanding' => $request->nomor_tanding,
'prestasi' => $request->prestasi,
'mendali' => $request->mendali,
];
if ($request->hasFile('sertifikat')) {
$sertifikat_file = $request->file('sertifikat');
$sertifikat_baru = "Sertifikat-" . $sertifikat_file->getClientOriginalName();
$sertifikat_file->move(public_path('documents/atlit'), $sertifikat_baru);
$data['sertifikat'] = $sertifikat_baru;
$get_serti = sertifikatAtlit::where('id', $decryptedId)->first();
$sertifikat_lama = $get_serti->sertifikat;
File::delete(public_path('documents/atlit') . "/" . $sertifikat_lama);
}
sertifikatAtlit::where('id', $decryptedId)->update($data);
return redirect()->back()->with('success', 'Data Berhasil Diubah!');
} catch (DecryptException $e) {
return redirect()->back()->with('error', 'Data gagal diubah!');
}
}
public function destroy(Request $request, String $id)
{
try {
$decryptedId = Crypt::decryptString($id);
$sertif = sertifikatAtlit::where('id', $decryptedId);
$sertifikat = $sertif->first();
File::delete(public_path('documents/atlit') . "/" . $sertifikat->sertifikat);
$sertif->delete();
return redirect()->back()->with('delete', 'Data berhasil dihapus!');
} catch (DecryptException $e) {
return redirect()->back()->with('error', 'Invalid ID');
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]