50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | module Devops | ||
|  |   module API3 | ||
|  |     module Routes | ||
|  |       module ImageRoutes | ||
|  | 
 | ||
|  |         def self.registered(app) | ||
|  | 
 | ||
|  |           app.define_policy :read_images, "Read images" | ||
|  |           app.define_policy :create_images, "Create image" | ||
|  |           app.define_policy :delete_images, "Delete image" | ||
|  | 
 | ||
|  |           app.get_with_headers "/images" do | ||
|  |             check_policy(:read_images) | ||
|  |             json Devops::API3::Handler::Image.new(request).images.map(&:to_hash) | ||
|  |           end | ||
|  | 
 | ||
|  |           app.post_with_headers "/image" do | ||
|  |             check_policy(:create_images) | ||
|  |             image = Devops::API3::Handler::Image.new(request).create_image() | ||
|  |             create_response "Created", {id: image.id}, 201
 | ||
|  |           end | ||
|  | 
 | ||
|  |           hash = {} | ||
|  |           hash["GET"] = lambda { |id| | ||
|  |             check_policy(:read_images) | ||
|  |             json Devops::API3::Handler::Image.new(request).image(id).to_hash | ||
|  |           } | ||
|  | 
 | ||
|  |           hash["PUT"] = lambda {|id| | ||
|  |             check_policy(:create_images) | ||
|  |             image = Devops::API3::Handler::Image.new(request).update_image(id) | ||
|  |             create_response("Image '#{id}' has been updated", {image: image.to_hash}) | ||
|  |           } | ||
|  | 
 | ||
|  |           hash["DELETE"] = lambda {|id| | ||
|  |             check_policy(:delete_images) | ||
|  |             Devops::API3::Handler::Image.new(request).delete_image(id) | ||
|  |             create_response("Image '#{id}' has been removed", {id: id}) | ||
|  |           } | ||
|  | 
 | ||
|  |           app.multi_routes "/image/:id", hash | ||
|  | 
 | ||
|  |           puts "Image routes initialized" | ||
|  |         end | ||
|  | 
 | ||
|  |       end | ||
|  |     end | ||
|  |   end | ||
|  | end |