class Restspec::Endpoints::Endpoint
Attributes
internal_payload[RW]
last_request[RW]
last_response[RW]
method[RW]
namespace[RW]
path[RW]
raw_url_params[RW]
Public Instance Methods
add_url_param_block(param, &block)
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 52 def add_url_param_block(param, &block) raw_url_params[param] = Proc.new(&block) end
execute(body: {}, url_params: {}, query_params: {})
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 11 def execute(body: {}, url_params: {}, query_params: {}) url = URLBuilder.new(full_path, self.url_params.merge(url_params), query_params).full_url request = Request.new(method, url, full_headers, body || payload) Network.request(request).tap do |response| self.last_request = inject_self_into(response, :endpoint) self.last_request = inject_self_into(request, :endpoint) end end
execute_once(body: {}, url_params: {}, query_params: {}, before: ->{ }
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 21 def execute_once(body: {}, url_params: {}, query_params: {}, before: ->{ }) @executed_response ||= begin before.call execute(body: body, url_params: url_params, query_params: query_params) end end
executed_url()
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 56 def executed_url last_request.url end
full_name()
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 28 def full_name [namespace.try(:name), name].compact.join("/") end
full_path()
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 32 def full_path if namespace && in_member_or_collection? "#{namespace.full_base_path}#{path}" else path end end
headers()
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 40 def headers @headers ||= {} end
payload()
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 44 def payload @payload ||= internal_payload end
url_params()
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 48 def url_params @url_params ||= URLBuilder.new(full_path, raw_url_params).url_params end
Private Instance Methods
config_headers()
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 90 def config_headers Restspec.config.try(:request).try(:headers) || {} end
full_headers()
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 86 def full_headers config_headers.merge(headers) end
in_member_or_collection?()
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 82 def in_member_or_collection? namespace.anonymous? end
inject_self_into(object, property)
click to toggle source
# File lib/restspec/endpoints/endpoint.rb, line 74 def inject_self_into(object, property) object.tap { object.send(:"#{property}=", self) } end