module Graphiti::Resource::Interface
Public Instance Methods
_all(params, opts, base_scope)
click to toggle source
@api private
# File lib/graphiti/resource/interface.rb, line 18 def _all(params, opts, base_scope) runner = Runner.new(self, params, opts.delete(:query), :all) opts[:params] = params runner.proxy(base_scope, opts.merge(caching_options)) end
_find(params = {}, base_scope = nil)
click to toggle source
@api private
# File lib/graphiti/resource/interface.rb, line 30 def _find(params = {}, base_scope = nil) guard_nil_id!(params[:data]) guard_nil_id!(params) id = params[:data].try(:[], :id) || params.delete(:id) params[:filter] ||= {} params[:filter][:id] = id if id runner = Runner.new(self, params, nil, :find) find_options = { single: true, raise_on_missing: true, bypass_required_filters: true }.merge(caching_options) runner.proxy base_scope, find_options end
all(params = {}, base_scope = nil)
click to toggle source
# File lib/graphiti/resource/interface.rb, line 12 def all(params = {}, base_scope = nil) validate_request!(params) _all(params, {}, base_scope) end
build(params, base_scope = nil)
click to toggle source
# File lib/graphiti/resource/interface.rb, line 49 def build(params, base_scope = nil) validate_request!(params) runner = Runner.new(self, params) runner.proxy(base_scope, single: true, raise_on_missing: true) end
cache_resource(expires_in: false)
click to toggle source
# File lib/graphiti/resource/interface.rb, line 7 def cache_resource(expires_in: false) @cache_resource = true @cache_expires_in = expires_in end
caching_options()
click to toggle source
# File lib/graphiti/resource/interface.rb, line 57 def caching_options {cache: @cache_resource, cache_expires_in: @cache_expires_in} end
find(params = {}, base_scope = nil)
click to toggle source
# File lib/graphiti/resource/interface.rb, line 24 def find(params = {}, base_scope = nil) validate_request!(params) _find(params, base_scope) end
guard_nil_id!(params)
click to toggle source
# File lib/graphiti/resource/interface.rb, line 72 def guard_nil_id!(params) return unless params if params.key?(:id) && params[:id].nil? raise Errors::UndefinedIDLookup.new(self) end end
validate_request!(params)
click to toggle source
# File lib/graphiti/resource/interface.rb, line 61 def validate_request!(params) return if Graphiti.context[:graphql] || !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