Sha256: a4a142fd00db1a7908d1879d46a0566ce58d687ea7cae47ebfbde728b8401b97

Contents?: true

Size: 868 Bytes

Versions: 2

Compression:

Stored size: 868 Bytes

Contents

module Graphiti
  class Resource
    module Interface
      extend ActiveSupport::Concern

      class_methods do
        def all(params = {}, base_scope = nil)
          _all(params, {}, base_scope)
        end

        def _all(params, opts, base_scope)
          runner = Runner.new(self, params)
          runner.proxy(base_scope, opts)
        end

        def find(params, base_scope = nil)
          id = params[:data].try(:[], :id) || params.delete(:id)
          params[:filter] ||= {}
          params[:filter].merge!(id: id)

          runner = Runner.new(self, params)
          runner.proxy(base_scope, single: true, raise_on_missing: true)
        end

        def build(params, base_scope = nil)
          runner = Runner.new(self, params)
          runner.proxy(base_scope, single: true, raise_on_missing: true)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
graphiti-1.0.alpha.1 lib/graphiti/resource/interface.rb
graphiti-rb-1.0.alpha.1 lib/graphiti/resource/interface.rb