Sha256: b6b427fe504f776c2dfe0a729ca88f8d1a8d8a6f80fac98209f484524bb37cf5

Contents?: true

Size: 980 Bytes

Versions: 1

Compression:

Stored size: 980 Bytes

Contents

# frozen_string_literal: true

module Silkey
  module Models
    class SSOParams
      attr_accessor :params

      def initialize(params = {})
        @params = params
      end

      def sign(private_key)
        params[:ssoTimestamp] = Utils.current_timestamp unless Utils.timestamp?(params[:ssoTimestamp])

        params[:ssoSignature] = Silkey::Utils.sign_message(private_key, SDK.message_to_sign(params))

        self
      end

      def required_present?
        Silkey::Settings.SSO_PARAMS[:required].all? do |k|
          if Silkey::Utils.empty?(params[k.to_sym])
            Silkey::LoggerService.warn(
              "Missing #{k}. This parameters are required for Silkey SSO: " +
                Silkey::Settings.SSO_PARAMS[:required].join(', ')
            )

            return false
          end

          true
        end
      end

      def validate
        raise 'Missing required params' unless required_present?

        self
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
silkey-sdk-0.1.0 lib/silkey/models/sso_params.rb