module ConstructorIORails::InstanceMethods
Public Instance Methods
constructorio_add_record(value, metadata = {}, autocomplete_key, autocomplete_section)
click to toggle source
# File lib/constructorio-rails.rb, line 80 def constructorio_add_record(value, metadata = {}, autocomplete_key, autocomplete_section) constructorio_call_api("post", value, metadata, autocomplete_key, autocomplete_section) end
constructorio_delete_record(value, metadata = {}, autocomplete_key, autocomplete_section)
click to toggle source
# File lib/constructorio-rails.rb, line 84 def constructorio_delete_record(value, metadata = {}, autocomplete_key, autocomplete_section) constructorio_call_api("delete", value, metadata, autocomplete_key, autocomplete_section) end
Private Instance Methods
constructorio_call_api(method, value, metadata, autocomplete_key, autocomplete_section)
click to toggle source
# File lib/constructorio-rails.rb, line 104 def constructorio_call_api(method, value, metadata, autocomplete_key, autocomplete_section) api_token = ConstructorIORails.configuration.api_token api_url = ConstructorIORails.configuration.api_url || "https://ac.cnstrc.com/" @http_client ||= Faraday.new(url: api_url) @http_client.basic_auth(api_token, '') request_body = constructorio_make_request_body(value, metadata, autocomplete_section) constructorio_send_request(method, @http_client, request_body, autocomplete_key) end
constructorio_make_request_body(value, metadata, autocomplete_section)
click to toggle source
# File lib/constructorio-rails.rb, line 90 def constructorio_make_request_body(value, metadata, autocomplete_section) request_body = { "item_name" => "#{value}", "autocomplete_section" => autocomplete_section } unless metadata.empty? metadata.each do |k, v| v = instance_exec(&v) if v.is_a? Proc request_body[k] = v end end request_body end
constructorio_send_request(method, http_client, request_body, autocomplete_key)
click to toggle source
# File lib/constructorio-rails.rb, line 114 def constructorio_send_request(method, http_client, request_body, autocomplete_key) response = http_client.send(method) do |request| request.url "/v1/item?autocomplete_key=#{autocomplete_key}" request.headers['Content-Type'] = 'application/json' request.body = request_body.to_json end if response.status.to_s =~ /^2/ return nil else return response.status end end