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
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