Class: Wallaby::ModelServiceProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/interfaces/wallaby/model_service_provider.rb

Overview

Model service provider interface

Direct Known Subclasses

ActiveRecord::ModelServiceProvider

Instance Method Summary collapse

Constructor Details

#initialize(model_class, model_decorator = nil) ⇒ ModelServiceProvider

Returns a new instance of ModelServiceProvider.

Parameters:

  • model_class (Class)

    model class

  • model_decorator (Wallaby::ModelDecorator, nil) (defaults to: nil)

    model decorator

Raises:

  • (::ArgumentError)


6
7
8
9
10
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 6

def initialize(model_class, model_decorator = nil)
  raise ::ArgumentError, 'model class required' unless model_class
  @model_class = model_class
  @model_decorator = model_decorator || Map.model_decorator_map(model_class)
end

Instance Method Details

#collection(_params, _authorizer) ⇒ Object

Fetch collection by params

Parameters:

  • _params (ActionController::Parameters)
  • _authorizer

Raises:



21
22
23
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 21

def collection(_params, _authorizer)
  raise NotImplemented
end

#create(_resource, _params, _authorizer) ⇒ Object

Save the newly initialized resource

Parameters:

  • _resource (Object)
  • _params (ActionController::Parameters)
  • _authorizer

Raises:



51
52
53
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 51

def create(_resource, _params, _authorizer)
  raise NotImplemented
end

#destroy(_resource, _params, _authorizer) ⇒ Object

Destroy the given resource

Parameters:

  • _resource (Object)
  • _params (ActionController::Parameters)
  • _authorizer

Raises:



67
68
69
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 67

def destroy(_resource, _params, _authorizer)
  raise NotImplemented
end

#find(_id, _params, _authorizer) ⇒ Object

Find a record using id

Parameters:

  • _id (Object)
  • _params (ActionController::Parameters)
  • _authorizer

Raises:



43
44
45
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 43

def find(_id, _params, _authorizer)
  raise NotImplemented
end

#new(_params, _authorizer) ⇒ Object

Initialize the model class using params

Parameters:

  • _params (ActionController::Parameters)
  • _authorizer

Raises:



35
36
37
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 35

def new(_params, _authorizer)
  raise NotImplemented
end

#paginate(_query, _params) ⇒ Object

Paginate the records

Parameters:

  • _query
  • _params (ActionController::Parameters)

Raises:



28
29
30
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 28

def paginate(_query, _params)
  raise NotImplemented
end

#permit(_params) ⇒ Object

To whitelist params for a model class

Parameters:

  • _params (ActionController::Parameters)

Raises:



14
15
16
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 14

def permit(_params)
  raise NotImplemented
end

#update(_resource, _params, _authorizer) ⇒ Object

Update the persisted resource

Parameters:

  • _resource (Object)
  • _params (ActionController::Parameters)
  • _authorizer

Raises:



59
60
61
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 59

def update(_resource, _params, _authorizer)
  raise NotImplemented
end