module BaseApi

Public Instance Methods

create() click to toggle source

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

# File lib/baseapi/app/controllers/concerns/base_api.rb, line 25
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/concerns/base_api.rb, line 57
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/concerns/base_api.rb, line 12
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/concerns/base_api.rb, line 18
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/concerns/base_api.rb, line 41
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

json_request?() click to toggle source

is json request @return bool

# File lib/baseapi/app/controllers/concerns/base_api.rb, line 99
def json_request?
  request.format.json?
end
set_Model() click to toggle source

set Model class

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

set model

# File lib/baseapi/app/controllers/concerns/base_api.rb, line 72
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/concerns/base_api.rb, line 77
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/concerns/base_api.rb, line 84
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