Class: SoqlDashboard::SalesforceApiClient
- Inherits:
-
Object
- Object
- SoqlDashboard::SalesforceApiClient
- Defined in:
- app/lib/soql_dashboard/salesforce_api_client.rb
Overview
rubocop:disable Metrics/ClassLength
Instance Method Summary collapse
- #execute_query(query) ⇒ Object
-
#initialize(config) ⇒ SalesforceApiClient
constructor
A new instance of SalesforceApiClient.
- #list_all_queryable_objects ⇒ Object
Constructor Details
#initialize(config) ⇒ SalesforceApiClient
Returns a new instance of SalesforceApiClient.
10 11 12 |
# File 'app/lib/soql_dashboard/salesforce_api_client.rb', line 10 def initialize(config) @config = config end |
Instance Method Details
#execute_query(query) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'app/lib/soql_dashboard/salesforce_api_client.rb', line 14 def execute_query(query) uri = build_query_uri(query) http = setup_http_connection(uri) request = create_request(uri) response = http.request(request) parse_response(response) rescue StandardError => e handle_error(e) end |
#list_all_queryable_objects ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/lib/soql_dashboard/salesforce_api_client.rb', line 25 def list_all_queryable_objects # Use describe_global to get all available objects describe_result = describe_global return describe_result if describe_result[:error] # Filter to only queryable objects queryable_objects = describe_result[:sobjects]&.select do |sobject| sobject["queryable"] == true end&.pluck("name") || [] { total_size: queryable_objects.length, records: queryable_objects.map { |name| { "QualifiedApiName" => name } }, } end |