File: /var/www/html/dashboard.orbiwheels.com/app/Http/Controllers/Api/Customer/ContactController.php
<?php
namespace App\Http\Controllers\Api\Customer;
use App\Http\Controllers\Controller;
use App\Models\ContactMessage;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Validator;
class ContactController extends Controller
{
public function store(Request $request)
{
try {
// Validation
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:255',
'email' => 'required|email|max:255',
'phone' => 'nullable|string|max:20',
'subject' => 'nullable|string|max:255',
'message' => 'required|string',
]);
if ($validator->fails()) {
return response()->json([
'status' => 'error',
'errors' => $validator->errors()
], 422);
}
// Store in database
$contact = ContactMessage::create($request->all());
try {
Mail::to(config('mail.from.address'))
->send(new \App\Mail\ContactMessageMail($contact));
} catch (\Exception $mailException) {
Log::error('Mail sending failed', [
'error' => $mailException->getMessage(),
'contact' => $contact->id,
]);
}
return response()->json([
'status' => 'success',
'message' => 'Your message has been submitted successfully!',
'data' => $contact
]);
} catch (\Exception $e) {
Log::error('contact store', [
"message" => $e->getMessage()
]);
return response()->json([
'status' => 'error',
'message' => 'Something went wrong!'
], 500);
}
}
}