class FrilansFinansAPI::Document
Attributes
json[R]
status[R]
uri[R]
Public Class Methods
new(response)
click to toggle source
# File lib/frilans_finans_api/document.rb, line 9 def initialize(response) @json = JSON.parse(response.body) @status = response.code @uri = response.request.uri.to_s end
Public Instance Methods
collection?()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 32 def collection? data = json['data'] return false if data.nil? || data.is_a?(Hash) true end
count()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 63 def count json.dig('meta', 'pagination', 'items') end
current_page()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 47 def current_page json.dig('meta', 'pagination', 'page', 'number') end
data()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 39 def data json['data'] end
error_status?()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 67 def error_status? # Consider HTTP status 3XX, 4XX and 5XX as errors status >= 300 end
next_page_link()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 43 def next_page_link json.dig('links', 'next') end
per_page()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 51 def per_page json.dig('meta', 'pagination', 'page', 'size') end
resource()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 25 def resource @resource ||= begin resource_data = collection? ? data.first : data Resource.new(resource_data) end end
resources()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 15 def resources @resources ||= begin if collection? data.map { |resource| Resource.new(resource) } else [Resource.new(data)] end end end
total()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 59 def total json.dig('meta', 'pagination', 'items') end
total_pages()
click to toggle source
# File lib/frilans_finans_api/document.rb, line 55 def total_pages json.dig('meta', 'pagination', 'pages') end