Class: Api::V1::SimpleAdmin::ResourcesController
- Inherits:
-
BaseController
- Object
- ActionController::API
- BaseController
- Api::V1::SimpleAdmin::ResourcesController
- Defined in:
- app/controllers/api/v1/simple_admin/resources_controller.rb
Instance Method Summary collapse
Instance Method Details
#create ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/controllers/api/v1/simple_admin/resources_controller.rb', line 51 def create model_klass = params[:model_klass_name].constantize resource = model_klass.new(resource_params) resource.image = CarrierStringIO.new(Base64.decode64(resource_params[:image])) if resource.save render json: resource else render json: resource.errors end end |
#destroy ⇒ Object
75 76 77 78 79 80 |
# File 'app/controllers/api/v1/simple_admin/resources_controller.rb', line 75 def destroy model_klass = params[:model_klass_name].constantize resource = model_klass.find(params[:id]) resource.destroy end |
#index ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/controllers/api/v1/simple_admin/resources_controller.rb', line 4 def index model_klass = params[:model_klass_name].constantize model_fields = params[:model_fields].map { |field_attributes| field_attributes[:field_name] } per_page = params[:per_page].to_i page = params[:page].to_i if params[:page].present? total = model_klass.count resources = model_klass.limit(per_page) if params[:query].present? search_result = search(params[:query], model_klass, params[:model_attributes]) resources = search_result[:resources] total = search_result[:total] end resources = resources.offset((per_page * page) - per_page) if page.present? resources = resources.order(params[:sort][:column_name] => params[:sort][:order]) if params[:sort].present? resources = resources.map do |resource| _resource = {} resource.attributes.each do |attribute_name, attribute_value| next unless model_fields.include?(attribute_name) _resource[attribute_name] = attribute_value end _resource end render json: { resources: resources, total: total } end |
#show ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'app/controllers/api/v1/simple_admin/resources_controller.rb', line 42 def show model_klass = params[:model_klass_name].constantize model_fields = params[:model_fields] resource = model_klass.find(params[:id]).attributes.slice(*model_fields) render json: resource end |
#update ⇒ Object
64 65 66 67 68 69 70 71 72 73 |
# File 'app/controllers/api/v1/simple_admin/resources_controller.rb', line 64 def update model_klass = params[:model_klass_name].constantize resource = model_klass.find(params[:id]) if resource.update(resource_params) render json: resource else render json: resource.errors end end |