File: /var/www/html/app/Livewire/Auth/SetNewPassword.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 SetNewPassword extends Component
{
public $password;
public $reset_code;
public $device_name;
public $showPassword = false;
protected $rules = [
'reset_code' => 'required|numeric|exists:otp_verifications,otp|digits:6',
'password' => 'required|valid_password',
'device_name' => 'required|string',
];
public function mount()
{
$this->device_name = Session::get('device_name');
}
public function togglePassword()
{
$this->showPassword = !$this->showPassword;
}
public function setNewPassword()
{
try {
$this->validate();
$email = session('user_email');
$response = Http::post(ApiEndpoints::newPassword(), [
'email' => $email,
'token' => $this->reset_code,
'password' => $this->password,
'device_name' => $this->device_name,
]);
if ($response->successful()) {
$info = $response->json(['message']);
Session::flush();
Session::flash('success', $info);
return redirect()->to('/login');
} else {
$info = $response->json(['message']);
$this->addError('password', $info);
}
} catch (\Throwable $th) {
$info = $th->getMessage();
$this->addError('password', $info);
Log::error($th->getMessage());
}
}
public function render()
{
return view('livewire.auth.set-new-password');
}
}