Module: JsonApiResource::Queryable::ClassMethods
- Includes:
- Conversions
- Defined in:
- lib/json_api_resource/queryable.rb
Instance Method Summary
collapse
#Address, #ApiErrors, #ApiResource, #Boolean, #Date, #DateTime, #Symbolize
Instance Method Details
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/json_api_resource/queryable.rb', line 38
def (opts = {})
page_total = 1
current_page = 1
all_results = []
until (current_page > page_total) || (current_page > MAX_PAGES_FOR_ALL)
page_of_results = where({:page => current_page}.merge(opts))
all_results << page_of_results
page_total = page_of_results.meta[:total_pages] || 1
current_page = current_page + 1
end
JsonApiClient::ResultSet.new(all_results.flatten.compact)
end
|
#create(attr = {}) ⇒ Object
25
26
27
|
# File 'lib/json_api_resource/queryable.rb', line 25
def create(attr = {})
new(:client => self.client_klass.create(attr)).save
end
|
#find(id) ⇒ Object
15
16
17
18
19
20
21
22
23
|
# File 'lib/json_api_resource/queryable.rb', line 15
def find(id)
return nil unless id.present?
results = self.client_klass.find(id).map! do |result|
self.new(:client => result)
end
results.size == 1 ? single_result(results) : results
rescue JsonApiClient::Errors::ServerError => e
pretty_error e
end
|
#where(opts = {}) ⇒ Object
29
30
31
32
33
34
35
36
|
# File 'lib/json_api_resource/queryable.rb', line 29
def where(opts = {})
opts[:per_page] = opts.fetch(:per_page, self.per_page) if self.per_page
(self.client_klass.where(opts).all).map! do |result|
self.new(:client => result)
end
rescue JsonApiClient::Errors::ServerError => e
pretty_error e
end
|