Sha256: f5bb1ade003a47f2c59df7a6f8581bc1e9500af4efde18af7119ebc317d6077a

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

module WestfieldSwagger
  class SwaggerController < WestfieldSwagger::ApplicationController
    rescue_from ApiSpecification::SpecificationParseError, with: :specification_parse_error
    rescue_from ApiSpecification::SpecificationMissing, with: :specification_missing

    ENV_PREFIX = %w(uat production).include?(Rails.env) ? "#{Rails.env}_" : ''

    def index
      if params[:service]
        # Access service swagger
        env_prefix = ''
        @service = "#{params[:service]}/"
      else
        # Access roll-up swagger
        env_prefix = ENV_PREFIX
        @service = ""
      end

      @spec = WestfieldSwagger::ApiSpecification.new(params[:version], binding, request, env_prefix)

      respond_to do |format|
        format.html
        format.json { render json: @spec.read }
        format.all {
          render text: "Format '#{params[:format]}' not supported", status: 404
        }
      end
    end

    def specification_parse_error(exception)
      data = { error: exception.message }
      render json: data, status: 500
    end

    def specification_missing(exception)
      data = { error: exception.message }
      render json: data, status: 404
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
westfield_swagger-1.2.6 app/controllers/westfield_swagger/swagger_controller.rb
westfield_swagger-1.2.5 app/controllers/westfield_swagger/swagger_controller.rb