Sha256: 1f248888ae5f8dc06b3dd97af7380826cef41298e83e9990418943d6225449ee

Contents?: true

Size: 970 Bytes

Versions: 12

Compression:

Stored size: 970 Bytes

Contents

# frozen_string_literal: true

module Trusona
  module Resources
    #
    ## A TruCode used for magic logins
    class TruCode < BaseResource
      include Trusona::Resources::Validators
      include Trusona::Helpers::KeyNormalizer

      attr_reader :relying_party_id, :payload, :id

      def initialize(params = {})
        normalized_params = normalize_keys(params)
        @id = normalized_params[:id]
        @payload = normalized_params[:payload]
        @relying_party_id = normalized_params[:relying_party_id] ||
                            Trusona::TruCodeConfig.new.relying_party_id
        raise ArgumentError unless validate
      end

      def to_json
        JSON(to_h)
      end

      def to_h
        {
          id: @id,
          relying_party_id: @relying_party_id,
          payload: @payload
        }
      end

      private

      def validate
        return false unless present?(@relying_party_id)
        true
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
trusona-2.4.0 lib/trusona/resources/tru_code.rb
trusona-2.3.0 lib/trusona/resources/tru_code.rb
trusona-2.2.0 lib/trusona/resources/tru_code.rb
trusona-2.1.0 lib/trusona/resources/tru_code.rb
trusona-2.0.0 lib/trusona/resources/tru_code.rb
trusona-1.0.1 lib/trusona/resources/tru_code.rb
trusona-1.0.0 lib/trusona/resources/tru_code.rb
trusona-0.20.0 lib/trusona/resources/tru_code.rb
trusona-0.19.0 lib/trusona/resources/tru_code.rb
trusona-0.18.2 lib/trusona/resources/tru_code.rb
trusona-0.18.1 lib/trusona/resources/tru_code.rb
trusona-0.16.0 lib/trusona/resources/tru_code.rb