fluke/devops-service/app/api3/routes/key.rb
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

38 lines
1.0 KiB
Ruby

require "json"
module Devops
module API3
module Routes
module KeyRoutes
def self.registered(app)
app.define_policy :read_keys, "Get keys list or key details"
app.define_policy :create_keys, "Create keys"
app.define_policy :delete_keys, "Delete keys"
app.get_with_headers "/keys" do
check_policy(:read_keys)
json Devops::API3::Handler::Key.new(request).keys.map{|k| k.to_list_hash }
end
app.post_with_headers "/key" do
check_policy(:create_keys)
key = Devops::API3::Handler::Key.new(request).create(settings.keys_dir)
create_response("Created", {id: key.id}, 201)
end
app.delete_with_headers "/key/:key" do |key|
check_policy(:delete_keys)
Devops::API3::Handler::Key.new(request).delete key
create_response("Key '#{key}' has been removed", {id: key})
end
puts "Key routes initialized"
end
end
end
end
end