Sha256: e74a6c05135bbfc99d80f5a93947e34a719496ca79628ec880a45b205e5411eb

Contents?: true

Size: 1.39 KB

Versions: 6

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

module ActionKitRest
  class API < Vertebrae::API
    def request(*args)
      ActionKitRest::Response::Wrapper.new(super(*args))
    end

    def post_json_request(path, params)
      p = {}
      p['data'] = params.to_json
      post_request(path, p)
    end

    def put_json_request(path, params)
      p = {}
      p['data'] = params.to_json
      put_request(path, p)
    end

    def extract_data_from_params(params) # :nodoc:
      if params.key?('data') && params['data'].present?
        params['data']
      else
        params
      end
    end

    def default_options
      {
        user_agent: 'ActionKitRestGem',
        prefix: '/rest/v1',
        content_type: 'application/json; charset=utf-8'
      }
    end

    def setup
      connection.stack do |builder|
        builder.use Faraday::Request::Multipart
        builder.use Faraday::Request::UrlEncoded
        if connection.configuration.authenticated?
          builder.use Faraday::Request::BasicAuthentication, connection.configuration.username,
                      connection.configuration.password
        end

        builder.use Faraday::Response::Logger if ENV['DEBUG']

        builder.use FaradayMiddleware::Mashify
        builder.use FaradayMiddleware::ParseJson

        builder.use ActionKitRest::Response::RaiseError
        builder.adapter connection.configuration.adapter
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
action_kit_rest-0.4.10 lib/action_kit_rest/api.rb
action_kit_rest-0.4.9 lib/action_kit_rest/api.rb
action_kit_rest-0.4.8 lib/action_kit_rest/api.rb
action_kit_rest-0.4.7 lib/action_kit_rest/api.rb
action_kit_rest-0.4.6 lib/action_kit_rest/api.rb
action_kit_rest-0.4.5 lib/action_kit_rest/api.rb