Sha256: 0af42c283448d0acae1f28b56342e468da673bb4565a1c57134b7d753795a29e
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
module Graphiti class Resource module Interface extend ActiveSupport::Concern class_methods do def all(params = {}, base_scope = nil) validate!(params) _all(params, {}, base_scope) end # @api private def _all(params, opts, base_scope) runner = Runner.new(self, params, opts.delete(:query), :all) opts[:params] = params runner.proxy(base_scope, opts) end def find(params = {}, base_scope = nil) validate!(params) _find(params, base_scope) end # @api private def _find(params = {}, base_scope = nil) id = params[:data].try(:[], :id) || params.delete(:id) params[:filter] ||= {} params[:filter][:id] = id if id runner = Runner.new(self, params, nil, :find) runner.proxy base_scope, single: true, raise_on_missing: true, bypass_required_filters: true end def build(params, base_scope = nil) validate!(params) runner = Runner.new(self, params) runner.proxy(base_scope, single: true, raise_on_missing: true) end private def validate!(params) return unless validate_endpoints? if context&.respond_to?(:request) path = context.request.env["PATH_INFO"] unless allow_request?(path, params, context_namespace) raise Errors::InvalidEndpoint.new(self, path, context_namespace) end end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
graphiti-1.2.25 | lib/graphiti/resource/interface.rb |
graphiti-1.2.21 | lib/graphiti/resource/interface.rb |
graphiti-1.2.20 | lib/graphiti/resource/interface.rb |