Module: JPie::Controller::CrudActions

Extended by:
ActiveSupport::Concern
Included in:
JPie::Controller
Defined in:
lib/jpie/controller/crud_actions.rb

Instance Method Summary collapse

Instance Method Details

#createObject



108
109
110
111
112
113
# File 'lib/jpie/controller/crud_actions.rb', line 108

def create
  validate_json_api_request
  attributes = deserialize_params
  resource = model_class.create!(attributes)
  render_jsonapi(resource, status: :created)
end

#destroyObject



123
124
125
126
127
# File 'lib/jpie/controller/crud_actions.rb', line 123

def destroy
  resource = resource_class.scope(context).find(params[:id])
  resource.destroy!
  head :no_content
end

#indexObject

These methods can still be called manually or used to override defaults



88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/jpie/controller/crud_actions.rb', line 88

def index
  validate_include_params
  validate_sort_params
  resources = resource_class.scope(context)
  sort_fields = parse_sort_params
  resources = resource_class.sort(resources, sort_fields) if sort_fields.any?

  pagination_params = parse_pagination_params
  original_resources = resources
  resources = apply_pagination(resources, pagination_params)

  render_jsonapi(resources, pagination: pagination_params, original_scope: original_resources)
end

#showObject



102
103
104
105
106
# File 'lib/jpie/controller/crud_actions.rb', line 102

def show
  validate_include_params
  resource = resource_class.scope(context).find(params[:id])
  render_jsonapi(resource)
end

#updateObject



115
116
117
118
119
120
121
# File 'lib/jpie/controller/crud_actions.rb', line 115

def update
  validate_json_api_request
  resource = resource_class.scope(context).find(params[:id])
  attributes = deserialize_params
  resource.update!(attributes)
  render_jsonapi(resource)
end