<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Requests\Api\ContactUsFormIndex;
use App\Mail\ContactForm;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;

class ContactUsFormController extends Controller
{
    public function index(ContactUsFormIndex $request)
    {
        $data = $request->validated();

        $received = [
            'name'      => $data['name'],
            'email'     => $data['email'],
            'message'   => $data['message']
        ];

        if (strlen($received['email']) && strlen($received['message'])) {
            $email = config('mail.to.address');
            try {
                Log::info("ContactUs request -> " . implode("|",$received));
                Mail::to($email)->send(new ContactForm($received));

                return [
                    'status'    => 'success',
                    'received'  => $received
                ];
            }catch(\Throwable $exception) {
                Log::error($exception);
                return ['status' => 'email_failed'];
            }
        } else {
            Log::info("ContactUs request -> INVALID/EMPTY");
            return ['status' => 'invalid_info'];
        }
    }
}
