Class: Wallaby::AbstractModelServicer

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

Overview

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.

Raises:

  • (ArgumentError)


9
10
11
12
13
14
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 9

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_classObject



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

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

Instance Method Details

#collection(params) ⇒ Object



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

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

#create(resource, params) ⇒ Object



36
37
38
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 36

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

#destroy(resource, params) ⇒ Object



44
45
46
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 44

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

#find(id, params) ⇒ Object



32
33
34
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 32

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

#new(params) ⇒ Object



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

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

#paginate(query, params) ⇒ Object



24
25
26
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 24

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

#permit(params) ⇒ Object



16
17
18
# File 'lib/servicers/wallaby/abstract_model_servicer.rb', line 16

def permit(params)
  @provider.permit params
end

#update(resource, params) ⇒ Object



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

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