module MongoidApiBase::BaseHelpers
Public Instance Methods
apply_scopes_to_chain!()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 26 def apply_scopes_to_chain! if respond_to?(:apply_scopes, true) @chain = apply_scopes(@chain) end end
build_object()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 22 def build_object resource_class.new(resource_params) end
find_object()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 7 def find_object resource_class.find(params[:id]) end
get_object_version(object)
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 11 def get_object_version(object) version = params[:version] if object.respond_to?(:undo, true) if version && version.to_i != object.version object.undo(nil, from: version.to_i + 1, to: object.version) object.version = version end end object end
json_config(action)
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 102 def json_config(action) json_options = self.class.json_options if json_options && json_options.key?(action) json_options = json_options[action] json_options[:methods] ||= [] json_options[:methods].concat(JSON_DEFAULT_ATTRIBUTES).uniq! json_options else json_default_options end end
json_default_options()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 87 def json_default_options @json_default_options ||= begin default_options = {} json_options = self.class.json_options || {} [:only, :except, :methods].each do |name| if json_options.key? name default_options[name] = json_options[name] end end default_options[:methods] ||= [] default_options[:methods].concat(JSON_DEFAULT_ATTRIBUTES).uniq! default_options end end
page()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 40 def page @page ||= params[:page] || false end
paginate_chain!()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 48 def paginate_chain! @chain = begin if page @chain.page(page).per(per_page) else @chain.all end end end
per_page()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 44 def per_page @per_page ||= params[:perPage] || self.class.per_page || 20 end
permitted_params()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 83 def permitted_params params.require(resource_request_name).permit! end
resource_class()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 66 def resource_class @resource_class ||= self.class.resource_class @resource_class ||= begin namespaced_class = self.class.to_s.split("::").last. sub(/Controller$/, "").singularize namespaced_class.constantize end end
resource_params()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 79 def resource_params permitted_params end
resource_request_name()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 75 def resource_request_name resource_class.to_s.underscore.gsub("/", "_").gsub("::", "_") end
search_filter_chain!()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 32 def search_filter_chain! query = params[:search] if query normalized_query = query.to_s.downcase @chain = @chain.search(normalized_query, match: :all) end end
set_total_count_header!()
click to toggle source
# File lib/mongoid-api-base/base_helpers.rb, line 58 def set_total_count_header! if page response.headers['X-Total-Count'] = @chain.total_count else response.headers['X-Total-Count'] = @chain.size end end