Sha256: 18ce5ce1efa8b4a5f3b1bac7b056bb53f5620dd855d0d40cd7ab7cded766042e
Contents?: true
Size: 1.41 KB
Versions: 3
Compression:
Stored size: 1.41 KB
Contents
# frozen_string_literal: true require 'active_support' require 'active_support/core_ext/object' require 'dry-initializer' require 'flinks/request' require 'flinks/api/account' require 'flinks/api/authorize' require 'flinks/api/card' require 'flinks/api/refresh' require 'flinks/api/statement' module Flinks class Client extend Dry::Initializer include Flinks::Request include Flinks::API::Account include Flinks::API::Authorize include Flinks::API::Card include Flinks::API::Refresh include Flinks::API::Statement option :customer_id option :api_endpoint, default: proc { "https://sandbox.flinks.io/v3/" } option :user_agent, default: proc { "Flinks Ruby Gem" } option :on_error, default: proc { proc {} } option :debug, default: proc { false } option :raw, default: proc { false } private # Builds an error message from a validation object # # @param [Dry::Validation::Result] validation # @return [String] def error_message(validation) validation.messages(full: true).values.flatten.to_sentence end # Validates a request payload against a schema object # # @param [Class] schema # @param [Hash] options # @raise [ArgumentError] def validate_request!(schema, options) payload = schema.call(options) raise ArgumentError, error_message(payload) unless payload.success? end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
flinks-0.5.2 | lib/flinks/client.rb |
flinks-0.5.1 | lib/flinks/client.rb |
flinks-0.5.0 | lib/flinks/client.rb |