Sha256: 8d24935afa93215f19f82ea46e78b9f1eda85cc33ee1a49934d67a442fe854c6
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
# frozen_string_literal: true require_relative 'request/fields' require_relative 'request/filters' require_relative 'request/includes' require_relative 'request/sorting' module Dayman class Request include Fields include Filters include Includes include Sorting attr_reader :resource, :fieldsets, :filters, :included_resources, :sort_fields def initialize(resource) @resource = resource @fieldsets = {} @filters = {} @included_resources = [] @sort_fields = [] end # http://jsonapi.org/format/#fetching-resources def all response = connection.get(resource.path, query_parameters) Parsers::CollectionParser.new(resource: resource, response: response.body).parse end # http://jsonapi.org/format/#fetching-resources def find(id) response = connection.get([resource.path, id].join('/')) Parsers::MemberParser.new(resource: resource, response: response.body).parse end private def connection Faraday.new(url: resource.site) end def query_parameters params = {} params.merge!(filters_to_query_parameters) params.merge!(included_resources_to_query_parameters) params.merge!(fieldsets_to_query_parameters) params.merge!(sort_fields_to_query_parameters) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dayman-0.1.1 | lib/dayman/request.rb |