add /kitty route to get a cat picture from CaaS
This commit is contained in:
		
							
								
								
									
										1
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Gemfile
									
									
									
									
									
								
							@@ -12,6 +12,7 @@ gem "ulid"
 | 
				
			|||||||
gem "uuid7"
 | 
					gem "uuid7"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gem "jwt"
 | 
					gem "jwt"
 | 
				
			||||||
 | 
					gem "httparty"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
group :development do
 | 
					group :development do
 | 
				
			||||||
  gem "ruby-lsp"
 | 
					  gem "ruby-lsp"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								Gemfile.lock
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Gemfile.lock
									
									
									
									
									
								
							@@ -4,7 +4,13 @@ GEM
 | 
				
			|||||||
    anyflake (0.0.1)
 | 
					    anyflake (0.0.1)
 | 
				
			||||||
    ast (2.4.2)
 | 
					    ast (2.4.2)
 | 
				
			||||||
    base64 (0.2.0)
 | 
					    base64 (0.2.0)
 | 
				
			||||||
 | 
					    bigdecimal (3.1.8)
 | 
				
			||||||
 | 
					    csv (3.3.0)
 | 
				
			||||||
    diff-lcs (1.6.0)
 | 
					    diff-lcs (1.6.0)
 | 
				
			||||||
 | 
					    httparty (0.22.0)
 | 
				
			||||||
 | 
					      csv
 | 
				
			||||||
 | 
					      mini_mime (>= 1.0.0)
 | 
				
			||||||
 | 
					      multi_xml (>= 0.5.2)
 | 
				
			||||||
    json (2.10.1)
 | 
					    json (2.10.1)
 | 
				
			||||||
    jwt (2.10.1)
 | 
					    jwt (2.10.1)
 | 
				
			||||||
      base64
 | 
					      base64
 | 
				
			||||||
@@ -12,8 +18,11 @@ GEM
 | 
				
			|||||||
    language_server-protocol (3.17.0.4)
 | 
					    language_server-protocol (3.17.0.4)
 | 
				
			||||||
    lint_roller (1.1.0)
 | 
					    lint_roller (1.1.0)
 | 
				
			||||||
    logger (1.6.6)
 | 
					    logger (1.6.6)
 | 
				
			||||||
 | 
					    mini_mime (1.1.5)
 | 
				
			||||||
    minitest (5.25.4)
 | 
					    minitest (5.25.4)
 | 
				
			||||||
    multi_json (1.15.0)
 | 
					    multi_json (1.15.0)
 | 
				
			||||||
 | 
					    multi_xml (0.7.1)
 | 
				
			||||||
 | 
					      bigdecimal (~> 3.1)
 | 
				
			||||||
    mustermann (3.0.3)
 | 
					    mustermann (3.0.3)
 | 
				
			||||||
      ruby2_keywords (~> 0.0.1)
 | 
					      ruby2_keywords (~> 0.0.1)
 | 
				
			||||||
    nanoid (2.0.0)
 | 
					    nanoid (2.0.0)
 | 
				
			||||||
@@ -118,6 +127,7 @@ PLATFORMS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
DEPENDENCIES
 | 
					DEPENDENCIES
 | 
				
			||||||
  anyflake
 | 
					  anyflake
 | 
				
			||||||
 | 
					  httparty
 | 
				
			||||||
  jwt
 | 
					  jwt
 | 
				
			||||||
  ksuid
 | 
					  ksuid
 | 
				
			||||||
  minitest
 | 
					  minitest
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										20
									
								
								app.rb
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								app.rb
									
									
									
									
									
								
							@@ -14,6 +14,8 @@ require "anyflake"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
require "jwt"
 | 
					require "jwt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require "httparty"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$LOAD_PATH.unshift File.dirname(__FILE__) + "/lib"
 | 
					$LOAD_PATH.unshift File.dirname(__FILE__) + "/lib"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require "config"
 | 
					require "config"
 | 
				
			||||||
@@ -495,3 +497,21 @@ get "/bytes/:size" do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  generate_bytes(Integer(n))
 | 
					  generate_bytes(Integer(n))
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					get "/kitty" do
 | 
				
			||||||
 | 
					  caas_host = ENV.fetch "CAAS_SERVICE_HOST"
 | 
				
			||||||
 | 
					  caas_port = ENV.fetch "CAAS_SERVICE_PORT"
 | 
				
			||||||
 | 
					  url = "http://#{caas_host}:#{caas_port}/"
 | 
				
			||||||
 | 
					  response = HTTParty.head(url)
 | 
				
			||||||
 | 
					  content_type response.headers["content-type"]
 | 
				
			||||||
 | 
					  stream do |out|
 | 
				
			||||||
 | 
					    response = HTTParty.get(url, stream_body: true) do |fragment|
 | 
				
			||||||
 | 
					      if [301, 302].include? fragment.code
 | 
				
			||||||
 | 
					      elsif fragment.code == 200
 | 
				
			||||||
 | 
					        out << fragment
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        raise StandardError, "non-success status code while streaming #{fragment.code}"
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user