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