class ReeRoda::BuildSwaggerFromRoutes

def call(routes, title, description, version, api_url)

def call(routes, title, description, version, api_url)
  endpoints = routes.map do |route|
    method_decorator = Ree::Contracts.get_method_decorator(
      route.action.klass, :call, scope: :instance
    )
    response_status = case route.request_method
    when :post
      201
    when :put, :delete, :patch
      204
    else
      200
    end
    caster = if route.action.klass.const_defined?(:ActionCaster)
      route.action.klass.const_get(:ActionCaster)
    end
    EndpointDto.new(
      method: route.request_method,
      sections: route.sections,
      respond_to: route.respond_to,
      path: route.path.start_with?("/") ? route.path : "/#{route.path}",
      caster: caster,
      serializer: route.serializer&.klass&.new,
      summary: route.summary,
      authenticate: route.warden_scope != :visitor,
      description: method_decorator&.doc || "",
      response_status: response_status,
      response_description: nil,
      errors: build_route_errors(route)
    )
  end
  build_schema(
    title: title,
    description: description,
    version: version,
    api_url: api_url,
    endpoints: endpoints
  )
end