class JSONAPI::Consumer::Query::Requestor
Attributes
klass[R]
path[R]
Public Class Methods
new(klass, path = nil)
click to toggle source
# File lib/jsonapi/consumer/query/requestor.rb, line 7 def initialize(klass, path = nil) @klass = klass @path = path end
Public Instance Methods
create(record)
click to toggle source
expects a record
# File lib/jsonapi/consumer/query/requestor.rb, line 13 def create(record) request(:post, klass.path(record.attributes), { data: record.as_json_api }) end
custom(method_name, options, params)
click to toggle source
# File lib/jsonapi/consumer/query/requestor.rb, line 39 def custom(method_name, options, params) path = resource_path(params) params.delete(klass.primary_key) path = File.join(path, method_name.to_s) request(options.fetch(:request_method, :get), path, params) end
destroy(record)
click to toggle source
# File lib/jsonapi/consumer/query/requestor.rb, line 31 def destroy(record) request(:delete, resource_path(record.attributes), {}) end
get(params = {})
click to toggle source
# File lib/jsonapi/consumer/query/requestor.rb, line 25 def get(params = {}) path = resource_path(params) params.delete(klass.primary_key) request(:get, path, params) end
linked(path)
click to toggle source
# File lib/jsonapi/consumer/query/requestor.rb, line 35 def linked(path) request(:get, path, {}) end
update(record)
click to toggle source
# File lib/jsonapi/consumer/query/requestor.rb, line 19 def update(record) request(:patch, resource_path(record.attributes), { data: record.as_json_api }) end
Protected Instance Methods
request(type, path, params)
click to toggle source
# File lib/jsonapi/consumer/query/requestor.rb, line 61 def request(type, path, params) klass.parser.parse(klass, connection.run(type, path, params, klass.custom_headers)) end
resource_path(parameters)
click to toggle source
# File lib/jsonapi/consumer/query/requestor.rb, line 52 def resource_path(parameters) base_path = path || klass.path(parameters) if resource_id = parameters[klass.primary_key] File.join(base_path, encode_part(resource_id)) else base_path end end