class FidoMetadata::Coercer::UserVerificationDetails

Public Class Methods

coerce(values) click to toggle source
# File lib/fido_metadata/coercer/user_verification_details.rb, line 8
def self.coerce(values)
  return unless values.is_a?(Array)
  return values if values.all? do |array|
    array.all? do |object|
      object.is_a?(VerificationMethodDescriptor)
    end
  end

  values.map do |array|
    array.map do |hash|
      object = FidoMetadata::VerificationMethodDescriptor.from_json(hash)

      if hash["baDesc"]
        object.ba_desc = FidoMetadata::BiometricAccuracyDescriptor.from_json(hash["baDesc"])
      end
      if hash["caDesc"]
        object.ca_desc = FidoMetadata::CodeAccuracyDescriptor.from_json(hash["caDesc"])
      end
      if hash["paDesc"]
        object.pa_desc = FidoMetadata::PatternAccuracyDescriptor.from_json(hash["paDesc"])
      end

      object
    end
  end
end