69 lines
1.8 KiB
PHP
69 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Dashboard;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Contact;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ContactController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
return view('dashboard.contacts.index', [
|
|
'title' => 'Pesan Kontak',
|
|
'status' => $request->input('status', null),
|
|
]);
|
|
}
|
|
|
|
public function show($id)
|
|
{
|
|
$contact = Contact::findOrFail(decrypt_id($id));
|
|
|
|
return view('dashboard.contacts.show', [
|
|
'title' => 'Detail Pesan',
|
|
'contact' => $contact,
|
|
]);
|
|
}
|
|
|
|
public function reply($id)
|
|
{
|
|
$contact = Contact::findOrFail(decrypt_id($id));
|
|
|
|
return view('dashboard.contacts.reply', [
|
|
'title' => 'Balas Pesan',
|
|
'contact' => $contact,
|
|
]);
|
|
}
|
|
|
|
public function replyAction(Request $request, $id)
|
|
{
|
|
$validatedData = $request->validate([
|
|
'reply_message' => ['required'],
|
|
], [
|
|
'reply_message.required' => 'Pesan balasan wajib diisi.',
|
|
]);
|
|
|
|
$contact = Contact::findOrFail(decrypt_id($id));
|
|
|
|
$contact->update([
|
|
'reply_message' => $validatedData['reply_message'],
|
|
'status' => '1',
|
|
]);
|
|
|
|
return redirect()->route('dashboard.contact.messages.show', ['id' => encrypt_id($contact->id)])->with('success-status', 'Berhasil membalas pesan.');
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
try {
|
|
$contact = Contact::findOrFail(decrypt_id($id));
|
|
$contact->delete();
|
|
|
|
return response()->json(['message' => 'Berhasil menghapus kontak pesan.']);
|
|
} catch (\Exception $e) {
|
|
return response()->json(['message' => 'Gagal menghapus kontak pesan.'], 500);
|
|
}
|
|
}
|
|
}
|