Class: Tanker::CTanker::CVerification
- Inherits:
-
FFI::Struct
- Object
- FFI::Struct
- Tanker::CTanker::CVerification
- Defined in:
- lib/tanker/c_tanker/c_verification.rb
Constant Summary collapse
- TYPE_EMAIL =
1- TYPE_PASSPHRASE =
2- TYPE_VERIFICATION_KEY =
3- TYPE_OIDC_ID_TOKEN =
4- TYPE_PHONE_NUMBER =
5- TYPE_PREVERIFIED_EMAIL =
6- TYPE_PREVERIFIED_PHONE_NUMBER =
7- TYPE_E2E_PASSPHRASE =
8- TYPE_PREVERIFIED_OIDC =
9- TYPE_OIDC_AUTHORIZATION_CODE =
10
Instance Method Summary collapse
-
#initialize(verification) ⇒ CVerification
constructor
rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity Not relevant for a case/when.
Constructor Details
#initialize(verification) ⇒ CVerification
rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity Not relevant for a case/when
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/tanker/c_tanker/c_verification.rb', line 109 def initialize(verification) # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity Not relevant for a case/when super() unless verification.is_a? Tanker::Verification raise TypeError, 'Verification argument is not a Tanker::Verification' end # NOTE: Instance variables are required to keep the CStrings alive case verification when Tanker::EmailVerification self[:type] = TYPE_EMAIL self[:email_verification] = CEmailVerification.new verification.email, verification.verification_code when Tanker::PassphraseVerification @passphrase = CTanker.new_cstring verification.passphrase self[:type] = TYPE_PASSPHRASE self[:passphrase] = @passphrase when Tanker::VerificationKeyVerification @verification_key = CTanker.new_cstring verification.verification_key self[:type] = TYPE_VERIFICATION_KEY self[:verification_key] = @verification_key when Tanker::OIDCIDTokenVerification @oidc_id_token = CTanker.new_cstring verification.oidc_id_token self[:type] = TYPE_OIDC_ID_TOKEN self[:oidc_id_token] = @oidc_id_token when Tanker::PhoneNumberVerification self[:type] = TYPE_PHONE_NUMBER self[:phone_number_verification] = CPhoneNumberVerification.new verification.phone_number, verification.verification_code when Tanker::PreverifiedEmailVerification @preverified_email = CTanker.new_cstring verification.preverified_email self[:type] = TYPE_PREVERIFIED_EMAIL self[:preverified_email] = @preverified_email when Tanker::PreverifiedPhoneNumberVerification @preverified_phone_number = CTanker.new_cstring verification.preverified_phone_number self[:type] = TYPE_PREVERIFIED_PHONE_NUMBER self[:preverified_phone_number] = @preverified_phone_number when Tanker::E2ePassphraseVerification @e2e_passphrase = CTanker.new_cstring verification.e2e_passphrase self[:type] = TYPE_E2E_PASSPHRASE self[:e2e_passphrase] = @e2e_passphrase when Tanker::PreverifiedOIDCVerification @preverified_oidc = COIDCVerification.new verification.subject, verification.provider_id self[:type] = TYPE_PREVERIFIED_OIDC self[:preverified_oidc] = @preverified_oidc when Tanker::OIDCAuthorizationCodeVerification self[:type] = TYPE_OIDC_AUTHORIZATION_CODE self[:oidc_authorization_code_verification] = COIDCAuthorizationCodeVerification.new( verification.provider_id, verification., verification.state ) else raise ArgumentError, 'Unknown Tanker::Verification type!' end self[:version] = 8 end |