diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/api.rb | 8 | ||||
-rw-r--r-- | lib/api/helpers/version.rb | 29 |
2 files changed, 29 insertions, 8 deletions
diff --git a/lib/api/api.rb b/lib/api/api.rb index f9bb1201472..19da0b2c434 100644 --- a/lib/api/api.rb +++ b/lib/api/api.rb @@ -10,14 +10,6 @@ module API NAMESPACE_OR_PROJECT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze COMMIT_ENDPOINT_REQUIREMENTS = NAMESPACE_OR_PROJECT_REQUIREMENTS.merge(sha: NO_SLASH_URL_PART_REGEX).freeze - def self.root_path(version: 'v4') - unless versions.include?(version) - raise ArgumentError, 'Unknown API version!' - end - - File.join('/', prefix.to_s, version.to_s) - end - insert_before Grape::Middleware::Error, GrapeLogging::Middleware::RequestLogger, logger: Logger.new(LOG_FILENAME), diff --git a/lib/api/helpers/version.rb b/lib/api/helpers/version.rb new file mode 100644 index 00000000000..0068002003e --- /dev/null +++ b/lib/api/helpers/version.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module API + module Helpers + class Version + include Helpers::RelatedResourcesHelpers + + def initialize(version) + @version = version.to_s + + unless API.versions.include?(version) + raise ArgumentError, 'Unknown API version!' + end + end + + def root_path + File.join('/', API.prefix.to_s, @version) + end + + def root_url + expose_url(root_path) + end + + def to_s + @version + end + end + end +end |