controllers.rb 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. MAX_PK = 10_000
  2. QUERIES_MIN = 1
  3. QUERIES_MAX = 500
  4. HelloWorld::App.controllers do
  5. get '/json', :provides => [:json] do
  6. response.headers['Server'] = 'padrino'
  7. response.headers['Date'] = Time.now.httpdate
  8. {message: "Hello, World!"}.to_json
  9. end
  10. get '/db', :provides => [:json] do
  11. response.headers['Server'] = 'padrino'
  12. response.headers['Date'] = Time.now.httpdate
  13. id = Random.rand(MAX_PK) + 1
  14. World.get(id).attributes.to_json
  15. end
  16. get '/queries', :provides => [:json] do
  17. response.headers['Server'] = 'padrino'
  18. response.headers['Date'] = Time.now.httpdate
  19. queries = params['queries'].to_i.clamp(QUERIES_MIN, QUERIES_MAX)
  20. results = (1..queries).map do
  21. World.get(Random.rand(MAX_PK) + 1).attributes
  22. end.to_json
  23. end
  24. get '/fortunes' do
  25. response.headers['Server'] = 'padrino'
  26. response.headers['Date'] = Time.now.httpdate
  27. @fortunes = Fortune.all
  28. @fortunes << Fortune.new(:id => 0, :message => "Additional fortune added at request time.")
  29. @fortunes = @fortunes.sort_by { |x| x.message }
  30. render 'fortunes', layout: "layout"
  31. end
  32. get '/updates', :provides => [:json] do
  33. response.headers['Server'] = 'padrino'
  34. response.headers['Date'] = Time.now.httpdate
  35. queries = params['queries'].to_i.clamp(QUERIES_MIN, QUERIES_MAX)
  36. worlds = (1..queries).map do
  37. # get a random row from the database, which we know has 10000
  38. # rows with ids 1 - 10000
  39. world = World.get(Random.rand(MAX_PK) + 1)
  40. world.update(randomNumber: Random.rand(MAX_PK) + 1)
  41. world.attributes
  42. end
  43. worlds.to_json
  44. end
  45. get '/plaintext' do
  46. response.headers['Server'] = 'padrino'
  47. response.headers['Date'] = Time.now.httpdate
  48. content_type 'text/plain'
  49. "Hello, World!"
  50. end
  51. end