Class: Wallaby::AbstractModelServicer

Inherits:
Object
  • Object
show all
Defined in:
lib/servicers/wallaby/abstract_model_servicer.rb

Overview

Abstract model servicer

Direct Known Subclasses

ModelServicer

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model_class = nil, authorizer = nil) ⇒ AbstractModelServicer

Returns a new instance of AbstractModelServicer.

Parameters:

  • model_class (Class, nil) (defaults to: nil)

    model class

  • authorizer (Ability) (defaults to: nil)

Raises:

  • (ArgumentError)


12
13
14
15
16
17
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 12

def initialize(model_class = nil, authorizer = nil)
  @model_class = model_class || self.class.model_class
  raise ArgumentError, 'model class required' unless @model_class
  @authorizer = authorizer
  @provider = Map.service_provider_map @model_class
end

Class Method Details

.model_classClass

Returns model class that comes from its class name.

Returns:

  • (Class)

    model class that comes from its class name



5
6
7
8
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 5

def self.model_class
  return unless self < ::Wallaby.configuration.mapping.model_servicer
  Map.model_class_map name.gsub('Servicer', EMPTY_STRING)
end

Instance Method Details

#collection(params) ⇒ ActiveRecord::Relation

Parameters:

  • params (ActionController::Parameters)

Returns:

  • (ActiveRecord::Relation)


27
28
29
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 27

def collection(params)
  @provider.collection params, @authorizer
end

#create(resource, params) ⇒ Object

Returns resource object.

Parameters:

  • resource (Object)
  • params (ActionController::Parameters)

Returns:

  • (Object)

    resource object



54
55
56
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 54

def create(resource, params)
  @provider.create resource, params, @authorizer
end

#destroy(resource, params) ⇒ Object

Returns resource object.

Parameters:

  • resource (Object)
  • params (ActionController::Parameters)

Returns:

  • (Object)

    resource object



68
69
70
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 68

def destroy(resource, params)
  @provider.destroy resource, params, @authorizer
end

#find(id, params) ⇒ Object

Returns resource object.

Parameters:

  • id (Object)
  • params (ActionController::Parameters)

Returns:

  • (Object)

    resource object



47
48
49
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 47

def find(id, params)
  @provider.find id, params, @authorizer
end

#new(params) ⇒ Object

Returns initialized object.

Parameters:

  • params (ActionController::Parameters)

Returns:

  • (Object)

    initialized object



40
41
42
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 40

def new(params)
  @provider.new params, @authorizer
end

#paginate(query, params) ⇒ ActiveRecord::Relation

Parameters:

  • query (ActiveRecord::Relation)
  • params (ActionController::Parameters)

Returns:

  • (ActiveRecord::Relation)


34
35
36
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 34

def paginate(query, params)
  @provider.paginate query, params
end

#permit(params) ⇒ ActionController::Parameters

Parameters:

  • params (ActionController::Parameters)

Returns:

  • (ActionController::Parameters)


21
22
23
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 21

def permit(params)
  @provider.permit params
end

#update(resource, params) ⇒ Object

Returns resource object.

Parameters:

  • resource (Object)
  • params (ActionController::Parameters)

Returns:

  • (Object)

    resource object



61
62
63
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 61

def update(resource, params)
  @provider.update resource, params, @authorizer
end