Sha256: 64e150cd5984a2e55d6765ac14597a16ad4fd340c0094910367315164449c5a1

Contents?: true

Size: 1.27 KB

Versions: 2

Compression:

Stored size: 1.27 KB

Contents

require 'cabal/util'
require 'cabal/api'
require 'cabal/api/user'
require 'cabal/api/common/authenticated'
require 'cabal/api/common/mistakes'
require 'cabal/api/common/services'

module Cabal
  module API
    module Common
      module PrivateKey
        def self.included(base)
          base.class_eval do
            include Cabal::API::Common::Authenticated
            include Cabal::API::Common::Mistakes
            include Cabal::API::Common::Services

            formatter :txt, ->(object, env) {
              object[:private_ssh_key]
            }

            helpers do
              def error_if_not_found!(cluster, name)
                unless cluster
                  error!(
                    messagify("The cluster '#{name}' could not be found."),
                    404
                  )
                end
              end
            end

            get '/private-key/:name' do
              authenticate!

              cluster_name = Cabal::Util.normalize(params[:name])
              key = cluster_service.private_key(cluster_name)

              error_if_not_found!(key, cluster_name)

              {
                name: cluster_name,
                private_ssh_key: key
              }
            end
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cabal-api-0.2.4 lib/cabal/api/common/private_key.rb
cabal-api-0.2.3 lib/cabal/api/common/private_key.rb