Sha256: f250d2ab907b03463a3df50dbe61d5f3fcfe00770d0606e76634c0296cc11fc0

Contents?: true

Size: 1 KB

Versions: 4

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

module Trusona
  module Resources
    #
    ## a relying party specific user identifier
    class UserIdentifier < BaseResource
      include Trusona::Resources::Validators
      attr_reader :identifier, :trusona_id

      def initialize(params = {})
        @params     = params
        @identifier = params[:identifier]
        @trusona_id = params[:trusona_id]
        @id         = @identifier
      end

      def to_h
        @params
      end

      def to_json(*_args)
        JSON(to_h)
      end

      def valid?
        validate
      end

      def validate
        attributes_present && attributes_filled
      end

      private

      def attributes_present
        return false unless @params.key?(:identifier)
        return false unless @params.key?(:trusona_id)

        true
      end

      def attributes_filled
        return false if @params.fetch(:identifier).empty?
        return false if @params.fetch(:trusona_id).empty?

        true
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
trusona-2.5.3 lib/trusona/resources/user_identifier.rb
trusona-2.5.2 lib/trusona/resources/user_identifier.rb
trusona-2.5.1 lib/trusona/resources/user_identifier.rb
trusona-2.5.0 lib/trusona/resources/user_identifier.rb