diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index 7fe1a6b7..624b3fc7 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -26,6 +26,8 @@ require 'metriks/reporter/logger' require 'metriks/librato_metrics_reporter' require 'travis/support/log_subscriber/active_record_metrics' require 'fileutils' +require 'travis/api/app/endpoint' +require 'travis/api/app/middleware' require 'travis/api/instruments' require 'travis/api/v2/http' require 'travis/api/v3' @@ -174,7 +176,6 @@ module Travis::Api def self.setup! setup_travis - load_endpoints setup_endpoints @setup = true end @@ -217,11 +218,6 @@ module Travis::Api Travis::Metrics.setup end - def self.load_endpoints - Dir.glob("#{__dir__}/app/middleware/*.rb").each { |f| require f[%r[(?<=lib/).+(?=\.rb$)]] } - Dir.glob("#{__dir__}/app/endpoint/*.rb").each { |f| require f[%r[(?<=lib/).+(?=\.rb$)]] } - end - def self.setup_endpoints Base.subclasses.each(&:setup) end diff --git a/lib/travis/api/app/base.rb b/lib/travis/api/app/base.rb index 1f5f4570..51e4e253 100644 --- a/lib/travis/api/app/base.rb +++ b/lib/travis/api/app/base.rb @@ -1,6 +1,8 @@ -require 'travis/api/app' require 'sinatra/base' require 'mustermann' +require 'travis/api/app' +require 'travis/api/app/extensions' +require 'travis/api/app/helpers' class Travis::Api::App # Superclass for any endpoint and middleware. diff --git a/lib/travis/api/app/endpoint.rb b/lib/travis/api/app/endpoint.rb index c4ef62f1..29323b3c 100644 --- a/lib/travis/api/app/endpoint.rb +++ b/lib/travis/api/app/endpoint.rb @@ -1,6 +1,7 @@ -require 'travis/api/app' require 'addressable/uri' require 'active_record/base' +require 'travis/api/app' +require 'travis/api/app/base' class Travis::Api::App # Superclass for HTTP endpoints. Takes care of prefixing. @@ -48,3 +49,23 @@ class Travis::Api::App end end end + +require 'travis/api/app/endpoint/accounts' +require 'travis/api/app/endpoint/authorization' +require 'travis/api/app/endpoint/branches' +require 'travis/api/app/endpoint/broadcasts' +require 'travis/api/app/endpoint/builds' +require 'travis/api/app/endpoint/documentation' +require 'travis/api/app/endpoint/endpoints' +require 'travis/api/app/endpoint/env_vars' +require 'travis/api/app/endpoint/home' +require 'travis/api/app/endpoint/hooks' +require 'travis/api/app/endpoint/jobs' +require 'travis/api/app/endpoint/lint' +require 'travis/api/app/endpoint/logs' +require 'travis/api/app/endpoint/repos' +require 'travis/api/app/endpoint/requests' +require 'travis/api/app/endpoint/setting_endpoint' +require 'travis/api/app/endpoint/singleton_settings_endpoint' +require 'travis/api/app/endpoint/uptime' +require 'travis/api/app/endpoint/users' diff --git a/lib/travis/api/app/middleware.rb b/lib/travis/api/app/middleware.rb index 619db9d6..8cdde661 100644 --- a/lib/travis/api/app/middleware.rb +++ b/lib/travis/api/app/middleware.rb @@ -3,5 +3,11 @@ require 'travis/api/app' class Travis::Api::App # Superclass for all middleware. class Middleware < Base + require 'travis/api/app/middleware/logging' + require 'travis/api/app/middleware/metriks' + require 'travis/api/app/middleware/rewrite' + require 'travis/api/app/middleware/scope_check' + require 'travis/api/app/middleware/skylight' + require 'travis/api/app/middleware/user_agent_tracker' end end