111 lines
3.7 KiB
PHP
111 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Dashboard;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\MediaMonitoringRequest;
|
|
use App\Models\MediaMonitoring;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class MediaMonitoringController extends Controller
|
|
{
|
|
public function index(){
|
|
return view('dashboard.media-monitorings.index', [
|
|
'title' => 'Monitoring Media'
|
|
]);
|
|
}
|
|
|
|
public function create(){
|
|
return view('dashboard.media-monitorings.create', [
|
|
'title' => 'Tambah Monitoring Media'
|
|
]);
|
|
}
|
|
|
|
public function store(MediaMonitoringRequest $request){
|
|
$validatedData = $request->validated();
|
|
$validatedData['enhancer_id'] = Auth::id();
|
|
|
|
$latestCode = MediaMonitoring::max('code');
|
|
$lastNumber = $latestCode ? intval(substr($latestCode, 3)) : 0;
|
|
$newNumber = str_pad($lastNumber + 1, 6, '0', STR_PAD_LEFT);
|
|
$code = 'ADN'.$newNumber;
|
|
|
|
$validatedData['code'] = $code;
|
|
$validatedData['image'] = store_file($validatedData['image'], 'uploads/media-monitorings', 'public')['randomFileName'];
|
|
|
|
$createMediaMonitoring = MediaMonitoring::create($validatedData);
|
|
|
|
if($createMediaMonitoring){
|
|
return redirect()->back()->with('success-status', 'Berhasil menambahkan monitoring media.');
|
|
}else{
|
|
return redirect()->back()->with('failed-status', 'Gagal menambahkan monitoring media.');
|
|
}
|
|
}
|
|
|
|
public function edit($id){
|
|
|
|
$mediaMonitoring = MediaMonitoring::findOrFail(decrypt_id($id));
|
|
|
|
return view('dashboard.media-monitorings.edit', [
|
|
'title' => 'Ubah Monitoring Media',
|
|
'mediaMonitoring' => $mediaMonitoring
|
|
]);
|
|
}
|
|
|
|
public function update(MediaMonitoringRequest $request, $id){
|
|
$validatedData = $request->validated();
|
|
|
|
$mediaMonitoring = MediaMonitoring::findOrFail(decrypt_id($id));
|
|
$validatedData['enhancer_id'] = Auth::id();
|
|
$validatedData['code'] = $mediaMonitoring->code;
|
|
|
|
if($request->has('image')){
|
|
delete_file('app/public/uploads/media-monitorings/'.$mediaMonitoring->image);
|
|
$validatedData['image'] = store_file($validatedData['image'], '/uploads/media-monitorings', 'public')['randomFileName'];
|
|
}else{
|
|
$validatedData['image'] = $mediaMonitoring->image;
|
|
}
|
|
|
|
$updatedMediaMonitoring = $mediaMonitoring->update($validatedData);
|
|
|
|
if($updatedMediaMonitoring){
|
|
return redirect()->back()->with('success-status', 'Berhasil mengubah monitoring media.');
|
|
}else{
|
|
return redirect()->back()->with('failed-status', 'Gagal mengubah monitoring media.');
|
|
}
|
|
}
|
|
|
|
public function show($id){
|
|
|
|
$mediaMonitoring = MediaMonitoring::findOrFail(decrypt_id($id));
|
|
|
|
return view('dashboard.media-monitorings.show', [
|
|
'title' => 'Detail Monitoring Media',
|
|
'mediaMonitoring' => $mediaMonitoring
|
|
]);
|
|
}
|
|
|
|
public function destroy($id){
|
|
try {
|
|
$mediaMonitoring = MediaMonitoring::findOrFail(decrypt_id($id));
|
|
delete_file('app/public/uploads/media-monitorings/'.$mediaMonitoring->image);
|
|
$mediaMonitoring->delete();
|
|
|
|
|
|
return response()->json(['message' => 'Berhasil menghapus monitoring media.']);
|
|
} catch (\Exception $e) {
|
|
return response()->json(['message' => 'Gagal menghapus monitoring media.'], 500);
|
|
}
|
|
}
|
|
|
|
public function checkLink(Request $request)
|
|
{
|
|
$linkExists = MediaMonitoring::where('link', $request->link)->exists();
|
|
|
|
return response()->json([
|
|
'exists' => $linkExists
|
|
]);
|
|
}
|
|
}
|