Sha256: d0068adf975d99e25d63b188552def6d99fb5cf8cdebc9ebe6eeec9beff4d335

Contents?: true

Size: 1.88 KB

Versions: 1

Compression:

Stored size: 1.88 KB

Contents

module SimpleHubspot
  class ApiClient
    class << self

      def do_post(path = nil, params = {}, headers = {})
        response = RestClient.post "#{SimpleHubspot.configuration.api_base}#{path}#{add_apikey}", params.to_json, { content_type: :json }
        response_success response.body
      rescue RestClient::BadRequest => e
        response_fail e.response.body
      end

      def do_get(path = nil, params = {}, headers = {})
        response = RestClient.get "#{SimpleHubspot.configuration.api_base}#{path}#{add_apikey}"
        json = JSON.parse(response.body, symbolize_names: true)
        json.merge(success: true)
      rescue RestClient::BadRequest => e
        response_fail e.response.body
      end

      def do_form_post(guid = nil, params = {}, headers = {})
        if params[:hs_context]
          params[:hs_context] = params[:hs_context].to_json
        end
        response = RestClient.post "#{SimpleHubspot.configuration.form_submit_base}#{SimpleHubspot.configuration.portal_id}/#{guid}",
                                   URI.encode_www_form(params),
                                   { content_type: 'application/x-www-form-urlencoded'}
        response_success response.body
      rescue RestClient::BadRequest => e
        response_fail e.response.body
      rescue RestClient::NotFound => e
        response_fail e.response.body
      end

      private
        def add_apikey
          "?hapikey=#{SimpleHubspot.configuration.hapikey}"
        end

        def response_fail(response = {})
          return { success: false } if response.empty?
          json = JSON.parse(response, symbolize_names: true)
          json.merge(success: false)
        end

        def response_success(response = {})
          return { success: true } if response.empty?
          json = JSON.parse(response, symbolize_names: true)
          json.merge(success: true)
        end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple_hubspot-0.1.5 lib/simple_hubspot/api_client.rb