Sha256: 0c59cf2b70268f0ec0b28e04a33dab9789e4776abc78d55ba4ec4b31f2fcb667

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 KB

Contents

module Graphiti::ActiveGraph
  module Runner
    def initialize(resource_class, params, query = nil, action = nil)
      @resource_class = resource_class
      @params = params
      @query = query
      @action = action

      validator = ::Graphiti::RequestValidator.new(jsonapi_resource, params, action)

      validator.validate! unless params[:skip_render_val]

      @deserialized_payload = validator.deserialized_payload
    end

    def proxy(base = nil, opts = {})
      base ||= jsonapi_resource.base_scope
      scope_opts = opts.slice(:sideload_parent_length,
        :default_paginate,
        :after_resolve,
        :sideload,
        :parent,
        :params,
        :preloaded).merge(unpaginated_query: params[:unpaginated_query])
      scope = jsonapi_scope(base, scope_opts)
      preloaded = opts[:preloaded]
      options = { payload: deserialized_payload,
        single: opts[:single],
        raise_on_missing: opts[:raise_on_missing],
        preloaded: preloaded
      }
      ::Graphiti::ResourceProxy.new jsonapi_resource,
        scope,
        query,
        options
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
graphiti-activegraph-0.1.20 lib/graphiti/active_graph/runner.rb
graphiti-activegraph-0.1.19 lib/graphiti/active_graph/runner.rb
graphiti-activegraph-0.1.18 lib/graphiti/active_graph/runner.rb