Sha256: 8d9597f4b746769dd5cc22cafea4b244986cb7ddd8c0cf2d2d3c438b49548378
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
module Lanes module API module RequestWrapper class << self def get(*args) wrap_request(*args) do |controller| controller.perform_retrieval end end def post(*args) wrap_request(*args) do |controller| controller.perform_creation end end def update(*args) wrap_request(*args) do |controller| controller.perform_update end end def delete(*args) wrap_request(*args) do |controller| controller.perform_destroy end end def wrap_request(model, controller, parent_attribute) lambda do authentication = Lanes::API::AuthenticationProvider.new( request_type: request.request_method, session: session, params: params ) authentication.wrap_request(model) do if parent_attribute params[:nested_attribute] = Hash[ parent_attribute, params[parent_attribute] ] end wrap_json_reply do yield controller.new(model, authentication, params, data) end end end end end def wrap_json_reply response = yield if false == response[:success] status(406) end Oj.dump(response, mode: :compat) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lanes-0.0.5 | lib/lanes/api/request_wrapper.rb |