class BaseApiController

Public Instance Methods

create() click to toggle source

POST /{models}/{id}.json @param @return String Json(Model)

# File lib/baseapi/app/controllers/base_api_controller.rb, line 23
def create
  render 'model.json.jbuilder' if transaction(-> {
    self.send("before_#{__method__}") if self.methods.include?("before_#{__method__}".to_sym)
    params.each do |key, value|
      if key.present? and @Model.column_names.include?(key)
        @model.send("#{key}=", value)
      end
    end
    @model.save
    self.send("after_#{__method__}") if self.methods.include?("after_#{__method__}".to_sym)
  })
end
destroy() click to toggle source

DELETE /{models}/{id}.json @param @return String Json(Model)

# File lib/baseapi/app/controllers/base_api_controller.rb, line 55
def destroy
  render 'model.json.jbuilder' if transaction(-> {
    self.send("before_#{__method__}") if self.methods.include?("before_#{__method__}".to_sym)
    @model._destroy
    self.send("after_#{__method__}") if self.methods.include?("after_#{__method__}".to_sym)
  })
end
index() click to toggle source

GET /{models}.json @param Hash @return String Json(Models)

# File lib/baseapi/app/controllers/base_api_controller.rb, line 10
def index
  render 'models.json.jbuilder'
end
show() click to toggle source

GET /{models}/{id}.json @return String Json(Model)

# File lib/baseapi/app/controllers/base_api_controller.rb, line 16
def show
  render 'model.json.jbuilder'
end
update() click to toggle source

PATCH/PUT /{models}/{id}.json @param @return String Json(Model)

# File lib/baseapi/app/controllers/base_api_controller.rb, line 39
def update
  render 'model.json.jbuilder' if transaction(-> {
    self.send("before_#{__method__}") if self.methods.include?("before_#{__method__}".to_sym)
    params.each do |key, value|
      if key.present? and @Model.column_names.include?(key)
        @model.send("#{key}=", value)
      end
    end
    @model.save
    self.send("after_#{__method__}") if self.methods.include?("after_#{__method__}".to_sym)
  })
end

Private Instance Methods

set_Model() click to toggle source

set Model class

# File lib/baseapi/app/controllers/base_api_controller.rb, line 66
def set_Model
  @Model = params[:controller].camelize.singularize.constantize
end
set_model() click to toggle source

set model

# File lib/baseapi/app/controllers/base_api_controller.rb, line 71
def set_model
  @model = params[:id].present? ? @Model.find(params[:id]) : @Model.new
end
set_models() click to toggle source

set models

# File lib/baseapi/app/controllers/base_api_controller.rb, line 76
def set_models
  @models = @Model.search(params)
end
transaction(callable) click to toggle source

transaction @param callable callable @return bool

# File lib/baseapi/app/controllers/base_api_controller.rb, line 83
def transaction (callable)
  begin
    @Model.transaction do
      callable.call()
    end
  rescue => e
    @message = e.message
    render 'error.json.jbuilder'
    return false
  end
  return true
end