HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
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);
        }
    }
}