Sha256: 26542aaa05babccd4d5dd5d8a5c3ba71e7e21dde425f9057f18b75e16e45882c

Contents?: true

Size: 924 Bytes

Versions: 1

Compression:

Stored size: 924 Bytes

Contents

module Berkshelf::API
  module Endpoint
    class V1 < Endpoint::Base
      helpers Berkshelf::API::Mixin::Services
      version 'v1', using: :header, vendor: 'berkshelf'
      format :json

      rescue_from Grape::Exceptions::Validation do |e|
        body = JSON.generate({status: e.status, message: e.message, param: e.param})
        rack_response(body, e.status, "Content-type" => "application/json")
      end

      desc "list all known cookbooks"
      get 'universe' do
        if cache_manager.warmed?
          cache_manager.cache
        else
          header "Retry-After", 600
          status 503
        end
      end

      desc "health check"
      get 'status' do
        {
          status: 'ok',
          version: Berkshelf::API::VERSION,
          cache_status: cache_manager.warmed? ? 'ok' : 'warming',
          uptime: Time.now.utc - Application.start_time,
        }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
berkshelf-api-1.1.1 lib/berkshelf/api/endpoint/v1.rb