Sha256: 0fcfbe7a55e7ce7e207c512e31ec79db0a22d5516375b56009c83b103f9f630b

Contents?: true

Size: 1.16 KB

Versions: 5

Compression:

Stored size: 1.16 KB

Contents

require 'rest_client'
require 'uri'

module Rhoconnectrb
  module API
    
    class Base
      def self.post(url,data)
        resp = resource[url].post data.to_json
        resp.body
      end
      
      def self.get(url,params=nil)
        if params
          params = {:params=>params} 
          resp = resource[url].get(params)
        else
          resp = resource[url].get self.content
        end
        resp.body
      end
      
      def self.put(url,data)
        resp = resource[url].put data.to_json
        resp.body
      end
      
      def self.delete(url,nothing=nil)
        resp = resource[url].delete
        resp.body
      end
      
      def self.token
        url = Rhoconnectrb.configuration.uri || ENV['RHOCONNECT_URL']
        uri = URI.parse(url)
        Rhoconnectrb.configuration.token || uri.user
      end
      
      def self.content
        {'X-RhoConnect-API-TOKEN'=> self.token, :content_type => :json, :accept => :json}
      end
      
      def self.resource
        uri = Rhoconnectrb.configuration.uri || ENV['RHOCONNECT_URL']
        RestClient::Resource.new(uri + "/rc/v1",:headers=>self.content)
      end
      
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rhoconnect-rb-1.1.0 lib/rhoconnectrb/api/base.rb
rhoconnect-rb-1.0.3 lib/rhoconnectrb/api/base.rb
rhoconnect-rb-1.0.2 lib/rhoconnectrb/api/base.rb
rhoconnect-rb-1.0.1 lib/rhoconnectrb/api/base.rb
rhoconnect-rb-1.0.0 lib/rhoconnectrb/api/base.rb