Sha256: b4cfa938a155568b1e065d443fd8ba518ec5b665048275d7b21c6e4535a69ac0

Contents?: true

Size: 1.61 KB

Versions: 10

Compression:

Stored size: 1.61 KB

Contents

# typed: strict
# frozen_string_literal: true

module EML
  module UK
    module TNS
      class ProcessRequest
        extend T::Sig

        sig do
          params(
            auth_token: T.nilable(String),
            parameters: T::Hash[String, T.untyped]
          ).returns(EML::UK::Models::TNS::Message)
        end
        def self.call(auth_token, parameters)
          new(auth_token, parameters).call
        end

        sig do
          params(
            auth_token: T.nilable(String),
            parameters: T::Hash[String, T.untyped]
          ).void
        end
        def initialize(auth_token, parameters)
          @auth_token = T.let(auth_token || "", String)
          @parameters = T.let(parameters, T::Hash[String, T.untyped])
          @credentials = T.let(nil, T.nilable(T::Hash[Symbol, T.untyped]))
        end

        sig { returns(EML::UK::Models::TNS::Message) }
        def call
          verify_auth_token
          EML::UK::Models::TNS::Message.new(@parameters)
        end

        private

        sig { void }
        def verify_auth_token
          valid = ::EML::BasicAuth::Verify.(
            @auth_token,
            credentials[:username],
            credentials[:password]
          )
          return if valid == true

          raise ::EML::TNS::AuthenticationError
        end

        sig { returns(T::Hash[Symbol, T.untyped]) }
        def credentials
          @credentials ||= begin
            config = EML::UK.config
            {
              username: config.tns_username,
              password: config.tns_password,
            }
          end
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
eml-3.0.0 lib/eml/uk/tns/process_request.rb
eml-2.2.0 lib/eml/uk/tns/process_request.rb
eml-2.1.8 lib/eml/uk/tns/process_request.rb
eml-2.1.7 lib/eml/uk/tns/process_request.rb
eml-2.1.6 lib/eml/uk/tns/process_request.rb
eml-2.1.5 lib/eml/uk/tns/process_request.rb
eml-2.1.4 lib/eml/uk/tns/process_request.rb
eml-2.1.3 lib/eml/uk/tns/process_request.rb
eml-2.1.2 lib/eml/uk/tns/process_request.rb
eml-2.1.1 lib/eml/uk/tns/process_request.rb