module OrgModel

Public Class Methods

included(base) click to toggle source

class methods

# File lib/Salesforce/rest/asf_rest_org_model.rb, line 22
def self.included(base)
  class << base
    # Get all available SObjects & their meta-data for an organization
    def describe_global(header=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@auth_header"),
        rest_svr=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@rest_svr"),
        api_version=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@api_version"))
      path = "/services/data/#{api_version}/sobjects/"
      target = rest_svr + path
      resp = call_rest_svr("GET", target, header, nil)
      #resp = get(path)
      if (resp.code != 200) || !resp.success?
        message = ActiveSupport::JSON.decode(resp.body)[0]["message"]
        Salesforce::Rest::ErrorManager.raise_error("HTTP code " + resp.code.to_s + ": " + message, resp.code)
      end
      return resp
    end

    # get available versions for making REST API calls
    def get_version(header=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@auth_header"),
        rest_svr=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@rest_svr"),
        api_version=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@api_version"))
      path = '/services/data/'
      target = rest_svr + path
      resp = call_rest_svr("GET", target, header, nil)
      if (resp.code != 200) || !resp.success?
        message = ActiveSupport::JSON.decode(resp.body)[0]["message"]
        Salesforce::Rest::ErrorManager.raise_error("HTTP code " + resp.code.to_s + ": " + message, resp.code)
      end
      return resp
    end

    # get resources available for REST, e.g. Query, Search, SObjects, Recent
    def list_available_resources(header=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@auth_header"),
        rest_svr=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@rest_svr"),
        api_version=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@api_version"))
      path = "/services/data/#{api_version}/"
      target = rest_svr + path
      resp = call_rest_svr("GET", target, header, nil)
      if (resp.code != 200) || !resp.success?
        message = ActiveSupport::JSON.decode(resp.body)[0]["message"]
        Salesforce::Rest::ErrorManager.raise_error("HTTP code " + resp.code.to_s + ": " + message, resp.code)
      end
      return resp
    end

    #Get detailed info about a single Salesforce SObject, e.g. Name, fields, edit template, etc.
    def get_detail_info(header=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@auth_header"),
        rest_svr=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@rest_svr"),
        api_version=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@api_version"))
      class_name = self.name.gsub(/\S+::/mi, "")
      path = "/services/data/#{api_version}/sobjects/#{class_name}/describe"
      target = rest_svr + path        
      resp = call_rest_svr("GET", target, header, nil)
      if (resp.code != 200) || !resp.success?
        message = ActiveSupport::JSON.decode(resp.body)[0]["message"]
        Salesforce::Rest::ErrorManager.raise_error("HTTP code " + resp.code.to_s + ": " + message, resp.code)
      end
      if (resp.code != 200) || !resp.success?
        message = ActiveSupport::JSON.decode(resp.body)[0]["message"]
        Salesforce::Rest::ErrorManager.raise_error("HTTP code " + resp.code.to_s + ": " + message, resp.code)
      end
      return resp
    end

    #get meta data about an SObject, including rows of recent items
    def get_meta_data(header=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@auth_header"),
        rest_svr=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@rest_svr"),
        api_version=Salesforce::Rest::AsfRest.send(:class_variable_get, "@@api_version"))
      class_name = self.name.gsub(/\S+::/mi, "")
      path = "/services/data/#{api_version}/sobjects/#{class_name}/"
      target = rest_svr + path
      resp = call_rest_svr("GET", target, header, nil)
      if (resp.code != 200) || !resp.success?
        message = ActiveSupport::JSON.decode(resp.body)[0]["message"]
        Salesforce::Rest::ErrorManager.raise_error("HTTP code " + resp.code.to_s + ": " + message, resp.code)
      end
      return resp
    end

  end
end