class Pipekit::WebMock::API::StubRequest
Public Class Methods
new(resource)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 41 def initialize(resource) resource_name = ResourceName.new(resource) @request = Pipekit::Request.new(resource_name) end
Public Instance Methods
stub_request_and_response(action, params, response)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 46 def stub_request_and_response(action, params, response) request = self.send("stub_#{action}_request", params) request.and_return(status: 200, body: {"data" => response, "success" => true}.to_json) if response request end
Private Instance Methods
api_token_param()
click to toggle source
# File lib/pipekit/webmock/api.rb, line 111 def api_token_param "api_token=#{Config.fetch(:api_token)}" end
body_from(params)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 96 def body_from(params) HTTParty::HashConversions.to_params(@request.parse_body(params)) end
pagination_params()
click to toggle source
# File lib/pipekit/webmock/api.rb, line 100 def pagination_params { limit: @request.pagination_limit, start: 0 } end
resource_uri(id = "")
click to toggle source
# File lib/pipekit/webmock/api.rb, line 92 def resource_uri(id = "") "#{Pipekit::Request::PIPEDRIVE_URL}#{@request.uri(id)}?#{api_token_param}" end
start()
click to toggle source
# File lib/pipekit/webmock/api.rb, line 107 def start 0 end
stub_create_request(params)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 54 def stub_create_request(params) stub_request(:post, resource_uri).with(body: body_from(params)) end
stub_find_by_email_request(params)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 82 def stub_find_by_email_request(params) email = params.delete(:email) stub_request(:get, "#{resource_uri("find")}&#{body_from(pagination_params)}&term=#{email}&search_by_email=1") end
stub_find_by_name_request(params)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 87 def stub_find_by_name_request(params) name = params.delete(:name) stub_request(:get, "#{resource_uri("find")}&#{body_from(pagination_params)}&term=#{name}") end
stub_find_by_person_id_request(params)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 77 def stub_find_by_person_id_request(params) person_id = params.delete(:person_id) stub_request(:get, "#{Pipekit::Request::PIPEDRIVE_URL}/persons/#{person_id}/deals?#{api_token_param}&#{body_from(pagination_params)}") end
stub_get_request(params)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 63 def stub_get_request(params) id = params.delete(:id) || params.delete("id") uri = "#{resource_uri(id)}&#{body_from(params)}&#{body_from(pagination_params)}" stub_request(:get, uri) end
stub_search_request(params)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 69 def stub_search_request(params) field = params.keys.first value = params[field] query = @request.search_by_field_query(field, value).merge(pagination_params) uri = "#{Pipekit::Request::PIPEDRIVE_URL}/searchResults/field?#{api_token_param}&#{body_from(query)}" stub_request(:get, uri) end
stub_update_request(params)
click to toggle source
# File lib/pipekit/webmock/api.rb, line 58 def stub_update_request(params) id = params.delete(:id) || params.delete("id") stub_request(:put, resource_uri(id)).with(body: body_from(params)) end