File: /var/www/BtPayments/BtPayments-platform/app/Libraries/LaravelKit/VerificationCodeRule.php
<?php
namespace App\Libraries\LaravelKit;
use App\Models\User;
use Closure;
use Illuminate\Contracts\Validation\ValidationRule;
class VerificationCodeRule implements ValidationRule
{
public $verificationCode;
protected string $action;
protected User $user;
public function __construct(array $parameters = [])
{
$this->verificationCode = new VerificationCode();
$this->action = $parameters['action'];
$this->user = $parameters['user'];
}
/**
* Run the validation rule.
*
* @param \Closure(string, ?string=): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (! $this->verificationCode->verifyUserActionCode($this->user, $this->action, $value)) {
$fail('The :attribute is invalid.');
}
}
}