module OpenApi::Endpoints::Controller::ClassMethods

Public Instance Methods

open_api_action(action, metadata = nil) click to toggle source
# File lib/open-api/endpoints.rb, line 138
def open_api_action(action, metadata = nil)
  @open_api_action_metadata ||= {} if metadata.present?
  OpenApi::Utils.metadata_by_string_or_regexp(@open_api_action_metadata, action, metadata,
      arg_name: 'action')
end
open_api_controller(metadata = nil) click to toggle source
# File lib/open-api/endpoints.rb, line 131
def open_api_controller(metadata = nil)
  return (@open_api_controller_metadata || {}).deep_dup if metadata.blank?
  fail 'Expected Hash argument for open_api_controller()!' unless metadata.is_a?(Hash)
  OpenApi::Endpoints.merge_metadata(@open_api_controller_metadata ||= {}, metadata)
  nil
end
open_api_endpoint_metadata(action, path, opts = {}) click to toggle source
# File lib/open-api/endpoints.rb, line 144
def open_api_endpoint_metadata(action, path, opts = {})
  path = OpenApi::Endpoints.relative_path(path, opts[:base_path])
  controller_class_hierarchy = OpenApi::Utils.controller_class_hierarchy(self)
  aggr_controller_metadata = {}
  controller_class_hierarchy.each do |controller_class|
    OpenApi::Endpoints.merge_metadata(aggr_controller_metadata,
        controller_class.send(:open_api_controller), opts)
  end
  aggr_path_metadata = {}
  controller_class_hierarchy.each do |controller_class|
    OpenApi::Endpoints.merge_metadata(aggr_path_metadata,
        controller_class.send(:open_api_path, path), opts)
  end
  aggr_action_metadata = {}
  controller_class_hierarchy.each do |controller_class|
    OpenApi::Endpoints.merge_metadata(aggr_action_metadata,
        controller_class.send(:open_api_action, action), opts)
  end
  OpenApi::Endpoints.merge_metadata(aggr_controller_metadata,
      OpenApi::Endpoints.merge_metadata(aggr_action_metadata, aggr_path_metadata,
          opts), opts)
end
open_api_path(path, metadata = nil) click to toggle source
# File lib/open-api/endpoints.rb, line 118
def open_api_path(path, metadata = nil)
  @open_api_path_metadata ||= {} if metadata.present?
  OpenApi::Utils.metadata_by_string_or_regexp(@open_api_path_metadata, path, metadata,
      arg_name: 'path')
end
open_api_path_param(path_param, param_metadata) click to toggle source
# File lib/open-api/endpoints.rb, line 124
def open_api_path_param(path_param, param_metadata)
  regexp = %r{(\A|\/)\:#{path_param}(\Z|\/)|\(\.\:#{path_param}\)}
  open_api_path regexp, path_params: {
      path_param.to_s => { type: :integer, required: true }.merge(param_metadata)
  }
end