Class: Wallaby::ActiveRecord::ModelServiceProvider
- Inherits:
-
ModelServiceProvider
- Object
- ModelServiceProvider
- Wallaby::ActiveRecord::ModelServiceProvider
- Defined in:
- lib/adaptors/wallaby/active_record/model_service_provider.rb,
lib/adaptors/wallaby/active_record/model_service_provider/querier.rb,
lib/adaptors/wallaby/active_record/model_service_provider/permitter.rb,
lib/adaptors/wallaby/active_record/model_service_provider/validator.rb,
lib/adaptors/wallaby/active_record/model_service_provider/normalizer.rb,
lib/adaptors/wallaby/active_record/model_service_provider/querier/transformer.rb
Overview
Model service provider
Defined Under Namespace
Classes: Normalizer, Permitter, Querier, Validator
Instance Method Summary collapse
-
#collection(params, authorizer) ⇒ ActiveRecord::Relation
NOTE: pagination free here.
- #create(resource_with_new_value, params, authorizer) ⇒ Object
- #destroy(resource, _params, _authorizer) ⇒ Object
- #find(id, permitted_params, _authorizer) ⇒ Object
- #new(permitted_params, _authorizer) ⇒ Object
-
#paginate(query, params) ⇒ Object
Paginate.
-
#permit(params) ⇒ ActionController::Parameters
Whitelisted parameters.
- #update(resource_with_new_value, params, authorizer) ⇒ Object
Methods inherited from ModelServiceProvider
Constructor Details
This class inherits a constructor from Wallaby::ModelServiceProvider
Instance Method Details
#collection(params, authorizer) ⇒ ActiveRecord::Relation
NOTE: pagination free here. Since somewhere might need the collection without any pagination
19 20 21 22 23 |
# File 'lib/adaptors/wallaby/active_record/model_service_provider.rb', line 19 def collection(params, ) query = querier.search params query = query.order params[:sort] if params[:sort].present? query.accessible_by end |
#create(resource_with_new_value, params, authorizer) ⇒ Object
56 57 58 |
# File 'lib/adaptors/wallaby/active_record/model_service_provider.rb', line 56 def create(resource_with_new_value, params, ) save __callee__, resource_with_new_value, params, end |
#destroy(resource, _params, _authorizer) ⇒ Object
66 67 68 |
# File 'lib/adaptors/wallaby/active_record/model_service_provider.rb', line 66 def destroy(resource, _params, ) resource.destroy end |
#find(id, permitted_params, _authorizer) ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/adaptors/wallaby/active_record/model_service_provider.rb', line 45 def find(id, permitted_params, ) resource = @model_class.find id resource.assign_attributes normalize permitted_params resource rescue ::ActiveRecord::RecordNotFound raise ResourceNotFound, id rescue ::ActiveModel::UnknownAttributeError resource end |
#new(permitted_params, _authorizer) ⇒ Object
38 39 40 41 42 |
# File 'lib/adaptors/wallaby/active_record/model_service_provider.rb', line 38 def new(permitted_params, ) @model_class.new normalize permitted_params rescue ::ActiveModel::UnknownAttributeError @model_class.new end |
#paginate(query, params) ⇒ Object
Paginate
30 31 32 33 34 35 |
# File 'lib/adaptors/wallaby/active_record/model_service_provider.rb', line 30 def paginate(query, params) per = params[:per] || Wallaby.configuration.pagination.page_size query = query.page params[:page] if query.respond_to? :page query = query.per per if query.respond_to? :per query end |
#permit(params) ⇒ ActionController::Parameters
Returns whitelisted parameters.
9 10 11 |
# File 'lib/adaptors/wallaby/active_record/model_service_provider.rb', line 9 def permit(params) params.require(param_key).permit permitted_fields end |
#update(resource_with_new_value, params, authorizer) ⇒ Object
61 62 63 |
# File 'lib/adaptors/wallaby/active_record/model_service_provider.rb', line 61 def update(resource_with_new_value, params, ) save __callee__, resource_with_new_value, params, end |