module Swagger::Serializer::RailsController

Private Instance Methods

body_deserializer() click to toggle source
# File lib/swagger/serializer/rails_controller.rb, line 47
def body_deserializer
  @body_deserializer ||=
    if request.content_type
      swagger_operation.request_body.content[request.content_type]&.deserializer
    end
end
body_params() click to toggle source
# File lib/swagger/serializer/rails_controller.rb, line 43
def body_params
  @body_params ||= body_deserializer ? body_deserializer.deserialize(params.permit!.to_h).with_indifferent_access : {}
end
parameter_deserializer() click to toggle source
# File lib/swagger/serializer/rails_controller.rb, line 38
def parameter_deserializer
  @parameter_deserializer ||=
    swagger_operation.parameters.deserializer
end
parameter_params() click to toggle source

params

# File lib/swagger/serializer/rails_controller.rb, line 34
def parameter_params
  @parameter_params ||= parameter_deserializer.data(params.permit!.to_h).deserialize.with_indifferent_access
end
render_as_schema(code, format, data, context = nil) click to toggle source

render

# File lib/swagger/serializer/rails_controller.rb, line 6
def render_as_schema(code, format, data, context = nil)
  render format => render_serializer(code, format, context).serialize(data)
end
render_serializer(code, format, context = nil) click to toggle source
# File lib/swagger/serializer/rails_controller.rb, line 10
def render_serializer(code, format, context = nil)
  response_obj = swagger_operation.responses[code]
  response_obj.content.send(format).serializer(inject_context: context)
end
schema_params() click to toggle source
# File lib/swagger/serializer/rails_controller.rb, line 54
def schema_params
  @schema_params ||= parameter_params.merge(body_params)
end
swagger_operation() click to toggle source
# File lib/swagger/serializer/rails_controller.rb, line 15
def swagger_operation
  return @swagger_operation if @swagger_operation

  route = swagger_schema_route_from_request
  @swagger_operation = Swagger::Schema.current.path(route[:path]).send(route[:method])
end
swagger_schema_route_from_request() click to toggle source
# File lib/swagger/serializer/rails_controller.rb, line 22
def swagger_schema_route_from_request
  return @swagger_schema_route_from_request if @swagger_schema_route_from_request

  Rails.application.routes.router.recognize(request) do |route|
    path = route.path.spec.to_s.sub("(.:format)", "").gsub(/:(\w+)/, "{\\1}")
    @swagger_schema_route_from_request = { path: path, method: request.request_method.underscore }
    return @swagger_schema_route_from_request
  end
end