Class: SimpleAdmin::ResourcesController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/simple_admin/resources_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



31
32
33
34
35
36
37
38
39
# File 'app/controllers/simple_admin/resources_controller.rb', line 31

def create
  resource = model_klass.new(resource_params)

  if resource.save
    render json: resource
  else
    render json: resource.errors
  end
end

#destroyObject



51
52
53
54
55
# File 'app/controllers/simple_admin/resources_controller.rb', line 51

def destroy
  resource = model_klass.find(params[:id])

  resource.destroy
end

#indexObject



3
4
5
6
7
8
9
10
11
12
13
# File 'app/controllers/simple_admin/resources_controller.rb', line 3

def index
  resource_service = ResourcesService.new(params[:model_klass_name], params[:model_fields])
                                     .index_action(params[:per_page], params[:page], params[:sort],
                                                   params[:query], params[:model_attributes], params[:reflection_tables],
                                                   params[:reflection_columns])

  render json: {
    resources: resource_service.resources,
    total: resource_service.total
  }
end

#showObject



15
16
17
18
19
20
21
# File 'app/controllers/simple_admin/resources_controller.rb', line 15

def show
  model_fields = params[:model_fields].map { |model_field| model_field['field_name'] }

  resource = model_klass.find(params[:id]).attributes.slice(*model_fields)

  render json: resource
end

#show_byObject



23
24
25
26
27
28
29
# File 'app/controllers/simple_admin/resources_controller.rb', line 23

def show_by
  model_fields = params[:model_fields].map { |model_field| model_field['field_name'] }

  resource = model_klass.find_by(params[:column_name] => params[:column_value]).attributes.slice(*model_fields)

  render json: resource
end

#updateObject



41
42
43
44
45
46
47
48
49
# File 'app/controllers/simple_admin/resources_controller.rb', line 41

def update
  resource = model_klass.find(params[:id])

  if resource.update(resource_params)
    render json: resource
  else
    render json: resource.errors
  end
end