Sha256: ba2c4e2c1f1ede7a9042425cf1f3d29dab87e1072956bac301eee437f18866fb

Contents?: true

Size: 832 Bytes

Versions: 1

Compression:

Stored size: 832 Bytes

Contents

module Api::V1::Base
  extend ActiveSupport::Concern

  included do
    include Api::V1::Base
    include Api::V1::Defaults
    include Api::V1::LoadsAndAuthorizesApiResource

    version "v1"
    use ::WineBouncer::OAuth2

    rescue_from :all do |error|
      handle_api_error(error)
    end

    BulletTrain::Api.endpoints.each do |endpoint_class|
      mount endpoint_class.constantize
    end
  end

  class_methods do
    # TODO I actually don't know of any way to make this work. This was supposed to be run after all other endpoints
    # are registered, but I don't know of a way to know when we're done running `initializer` blocks from the engines
    # a user may have included.
    def handle_not_found
      route :any, "*path" do
        raise StandardError, "Unable to find API endpoint"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bullet_train-api-1.0.5 app/controllers/concerns/api/v1/base.rb