web.moon 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. lapis = require "lapis"
  2. db = require "lapis.db"
  3. import Model from require "lapis.db.model"
  4. import config from require "lapis.config"
  5. import insert from table
  6. import sort from table
  7. import random from math
  8. class Fortune extends Model
  9. class World extends Model
  10. lapis.serve class Benchmark extends lapis.Application
  11. "/": =>
  12. json: {message: "Hello, World!"}
  13. "/db": =>
  14. num_queries = tonumber(@params.queries) or 1
  15. worlds = {}
  16. for i = 1, num_queries
  17. insert worlds, World\find random(1, 10000)
  18. json: worlds
  19. "/fortunes": =>
  20. @fortunes = Fortune\select ""
  21. insert @fortunes, {id:0, message:"Additional fortune added at request time."}
  22. sort @fortunes, (a, b) -> a.message < b.message
  23. @title = "Fortunes"
  24. @html ->
  25. element "table", ->
  26. tr ->
  27. th ->
  28. text "id"
  29. th ->
  30. text "message"
  31. for fortune in *@fortunes
  32. tr ->
  33. td ->
  34. text fortune.id
  35. td ->
  36. text fortune.message
  37. "/update": =>
  38. num_queries = tonumber(@params.queries) or 1
  39. worlds = {}
  40. for i = 1, num_queries
  41. wid = random(1, 10000)
  42. world = World\find wid
  43. world.randomnumber = random(1, 10000)
  44. world\update "randomnumber"
  45. insert worlds, world
  46. json: worlds
  47. "/plaintext": =>
  48. content_type:"text/plain", layout: false, "Hello, World!"