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) ⇒ #to_a

Fetch collection by params

Parameters:

  • _params (ActionController::Parameters)
  • _authorizer

Returns:

  • (#to_a)

Raises:



23
24
25
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 23

def collection(_params, _authorizer)
  raise NotImplemented
end

#create(_resource, _params, _authorizer) ⇒ Object

Save the newly initialized resource

Parameters:

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

Returns:

  • a resource object

Raises:



57
58
59
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 57

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

#destroy(_resource, _params, _authorizer) ⇒ Object

Destroy the given resource

Parameters:

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

Returns:

  • a resource object

Raises:



75
76
77
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 75

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

#find(_id, _params, _authorizer) ⇒ Object

Find a resource using id

Parameters:

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

Returns:

  • a resource object

Raises:



48
49
50
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 48

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

#new(_params, _authorizer) ⇒ Object

Initialize the model class using params

Parameters:

  • _params (ActionController::Parameters)
  • _authorizer

Returns:

  • a resource object

Raises:



39
40
41
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 39

def new(_params, _authorizer)
  raise NotImplemented
end

#paginate(_query, _params) ⇒ #to_a

Paginate the resources

Parameters:

  • _query
  • _params (ActionController::Parameters)

Returns:

  • (#to_a)

Raises:



31
32
33
# File 'lib/interfaces/wallaby/model_service_provider.rb', line 31

def paginate(_query, _params)
  raise NotImplemented
end

#permit(_params) ⇒ ActionController::Parameters

To whitelist params for a model class

Parameters:

  • _params (ActionController::Parameters)

Returns:

  • (ActionController::Parameters)

    whitelisted params

Raises:



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

def permit(_params)
  raise NotImplemented
end

#update(_resource, _params, _authorizer) ⇒ Object

Update the persisted resource

Parameters:

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

Returns:

  • a resource object

Raises:



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

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