Sha256: f8e910ff04d095256f9949da84adea64e365f9256f922636a3438a3cd785755b

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

require 'rest-client'
require 'json'

module Siteleaf
  class Client  
    def self.auth(email, password)
      request = RestClient::Request.new(:url => Siteleaf.api_url('auth'), :method => :post, :user => email, :password => password)
      begin
        response = request.execute
        return JSON.parse(response) # parse JSON
      rescue => e
        return e.inspect # error
      end
    end
  
    def self.get(path, params = nil)
      self.execute(:get, path, nil, params)
    end
    
    def self.post(path, params)
      self.execute(:post, path, params)
    end
    
    def self.put(path, params)
     self.execute(:put, path, params)
    end
    
    def self.delete(path)
      self.execute(:delete, path)
    end
    
    def self.execute(method, path, payload = nil, params = nil)
      Siteleaf.load_settings if !Siteleaf.api_key
      request = RestClient::Request.new(:url => Siteleaf.api_url(path), :method => method, :payload => payload, :headers => { :params => params }, :user => Siteleaf.api_key, :password => Siteleaf.api_secret)
      begin
        response = request.execute
        if response.headers[:content_type].to_s.include?('json')
          return JSON.parse(response) # parse JSON
        else
          return response # raw
        end
      rescue => e
        return e.inspect # error
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
siteleaf-0.8.1 lib/siteleaf/client.rb
siteleaf-0.8.0 lib/siteleaf/client.rb