Sha256: 4345b6a0e0581eb6a0240f13f24450c6274f9d2be920d16febb7bc496ead5885

Contents?: true

Size: 707 Bytes

Versions: 23

Compression:

Stored size: 707 Bytes

Contents

# frozen_string_literal: true

module Motor
  module ApiConfigs
    METHODS = %w[get post put delete].freeze

    DEFAULT_HEADERS = { 'Content-Type' => 'application/json' }.freeze

    InvalidHttpMethod = Class.new(StandardError)

    module_function

    def run(api_config, method: nil, path: nil, body: nil, params: {}, headers: {})
      method ||= 'get'

      raise InvalidHttpMethod unless METHODS.include?(method.downcase)

      Motor::NetHttpUtils.public_send(
        method.downcase.to_sym,
        api_config.url.to_s.sub(%r{/?\z}, '/') + path.delete_prefix('/'),
        params,
        DEFAULT_HEADERS.merge(headers).merge(api_config.headers),
        body&.to_json
      )
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
motor-admin-0.2.79 lib/motor/api_configs.rb
motor-admin-0.2.78 lib/motor/api_configs.rb
motor-admin-0.2.77 lib/motor/api_configs.rb
motor-admin-0.2.76 lib/motor/api_configs.rb
motor-admin-0.2.75 lib/motor/api_configs.rb
motor-admin-0.2.74 lib/motor/api_configs.rb
motor-admin-0.2.73 lib/motor/api_configs.rb
motor-admin-0.2.72 lib/motor/api_configs.rb
motor-admin-0.2.71 lib/motor/api_configs.rb
motor-admin-0.2.70 lib/motor/api_configs.rb
motor-admin-0.2.69 lib/motor/api_configs.rb
motor-admin-0.2.68 lib/motor/api_configs.rb
motor-admin-0.2.67 lib/motor/api_configs.rb
motor-admin-0.2.66 lib/motor/api_configs.rb
motor-admin-0.2.65 lib/motor/api_configs.rb
motor-admin-0.2.64 lib/motor/api_configs.rb
motor-admin-0.2.63 lib/motor/api_configs.rb
motor-admin-0.2.62 lib/motor/api_configs.rb
motor-admin-0.2.61 lib/motor/api_configs.rb
motor-admin-0.2.60 lib/motor/api_configs.rb