HEX
Server: nginx/1.24.0
System: Linux prod-btpayments-io 6.14.0-1018-aws #18~24.04.1-Ubuntu SMP Mon Nov 24 19:46:27 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.3.19
Disabled: NONE
Upload Files
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.');
        }
    }
}