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