web.lua 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. local lapis = require("lapis")
  2. local db = require("lapis.db")
  3. local Model
  4. do
  5. local _obj_0 = require("lapis.db.model")
  6. Model = _obj_0.Model
  7. end
  8. local config
  9. do
  10. local _obj_0 = require("lapis.config")
  11. config = _obj_0.config
  12. end
  13. local insert
  14. do
  15. local _obj_0 = table
  16. insert = _obj_0.insert
  17. end
  18. local sort
  19. do
  20. local _obj_0 = table
  21. sort = _obj_0.sort
  22. end
  23. local min, random
  24. do
  25. local _obj_0 = math
  26. min, random = _obj_0.min, _obj_0.random
  27. end
  28. local Fortune
  29. do
  30. local _parent_0 = Model
  31. local _base_0 = { }
  32. _base_0.__index = _base_0
  33. setmetatable(_base_0, _parent_0.__base)
  34. local _class_0 = setmetatable({
  35. __init = function(self, ...)
  36. return _parent_0.__init(self, ...)
  37. end,
  38. __base = _base_0,
  39. __name = "Fortune",
  40. __parent = _parent_0
  41. }, {
  42. __index = function(cls, name)
  43. local val = rawget(_base_0, name)
  44. if val == nil then
  45. return _parent_0[name]
  46. else
  47. return val
  48. end
  49. end,
  50. __call = function(cls, ...)
  51. local _self_0 = setmetatable({}, _base_0)
  52. cls.__init(_self_0, ...)
  53. return _self_0
  54. end
  55. })
  56. _base_0.__class = _class_0
  57. if _parent_0.__inherited then
  58. _parent_0.__inherited(_parent_0, _class_0)
  59. end
  60. Fortune = _class_0
  61. end
  62. local World
  63. do
  64. local _parent_0 = Model
  65. local _base_0 = { }
  66. _base_0.__index = _base_0
  67. setmetatable(_base_0, _parent_0.__base)
  68. local _class_0 = setmetatable({
  69. __init = function(self, ...)
  70. return _parent_0.__init(self, ...)
  71. end,
  72. __base = _base_0,
  73. __name = "World",
  74. __parent = _parent_0
  75. }, {
  76. __index = function(cls, name)
  77. local val = rawget(_base_0, name)
  78. if val == nil then
  79. return _parent_0[name]
  80. else
  81. return val
  82. end
  83. end,
  84. __call = function(cls, ...)
  85. local _self_0 = setmetatable({}, _base_0)
  86. cls.__init(_self_0, ...)
  87. return _self_0
  88. end
  89. })
  90. _base_0.__class = _class_0
  91. if _parent_0.__inherited then
  92. _parent_0.__inherited(_parent_0, _class_0)
  93. end
  94. World = _class_0
  95. end
  96. local Benchmark
  97. do
  98. local _parent_0 = lapis.Application
  99. local _base_0 = {
  100. ["/json"] = function(self)
  101. return {
  102. json = {
  103. message = "Hello, World!"
  104. }
  105. }
  106. end,
  107. ["/db"] = function(self)
  108. local w = World:find(random(1, 10000))
  109. return {
  110. json = {
  111. id = w.id,
  112. randomNumber = w.randomnumber
  113. }
  114. }
  115. end,
  116. ["/queries"] = function(self)
  117. local num_queries = tonumber(self.params.queries) or 1
  118. if num_queries < 2 then
  119. local w = World:find(random(1, 10000))
  120. return {
  121. json = {
  122. {
  123. id = w.id,
  124. randomNumber = w.randomnumber
  125. }
  126. }
  127. }
  128. end
  129. local worlds = { }
  130. num_queries = min(500, num_queries)
  131. for i = 1, num_queries do
  132. local w = World:find(random(1, 10000))
  133. insert(worlds, {
  134. id = w.id,
  135. randomNumber = w.randomnumber
  136. })
  137. end
  138. return {
  139. json = worlds
  140. }
  141. end,
  142. ["/fortunes"] = function(self)
  143. self.fortunes = Fortune:select("")
  144. insert(self.fortunes, {
  145. id = 0,
  146. message = "Additional fortune added at request time."
  147. })
  148. sort(self.fortunes, function(a, b)
  149. return a.message < b.message
  150. end)
  151. return {
  152. layout = false
  153. }, self:html(function()
  154. raw('<!DOCTYPE HTML>')
  155. return html(function()
  156. head(function()
  157. return title("Fortunes")
  158. end)
  159. return body(function()
  160. return element("table", function()
  161. tr(function()
  162. th(function()
  163. return text("id")
  164. end)
  165. return th(function()
  166. return text("message")
  167. end)
  168. end)
  169. local _list_0 = self.fortunes
  170. for _index_0 = 1, #_list_0 do
  171. local fortune = _list_0[_index_0]
  172. tr(function()
  173. td(function()
  174. return text(fortune.id)
  175. end)
  176. return td(function()
  177. return text(fortune.message)
  178. end)
  179. end)
  180. end
  181. end)
  182. end)
  183. end)
  184. end)
  185. end,
  186. ["/update"] = function(self)
  187. local num_queries = tonumber(self.params.queries) or 1
  188. if num_queries == 0 then
  189. num_queries = 1
  190. end
  191. local worlds = { }
  192. num_queries = min(500, num_queries)
  193. for i = 1, num_queries do
  194. local wid = random(1, 10000)
  195. local world = World:find(wid)
  196. world.randomnumber = random(1, 10000)
  197. world:update("randomnumber")
  198. insert(worlds, {
  199. id = world.id,
  200. randomNumber = world.randomnumber
  201. })
  202. end
  203. if num_queries < 2 then
  204. return {
  205. json = {
  206. worlds[1]
  207. }
  208. }
  209. end
  210. return {
  211. json = worlds
  212. }
  213. end,
  214. ["/plaintext"] = function(self)
  215. return {
  216. content_type = "text/plain",
  217. layout = false
  218. }, "Hello, World!"
  219. end
  220. }
  221. _base_0.__index = _base_0
  222. setmetatable(_base_0, _parent_0.__base)
  223. local _class_0 = setmetatable({
  224. __init = function(self, ...)
  225. return _parent_0.__init(self, ...)
  226. end,
  227. __base = _base_0,
  228. __name = "Benchmark",
  229. __parent = _parent_0
  230. }, {
  231. __index = function(cls, name)
  232. local val = rawget(_base_0, name)
  233. if val == nil then
  234. return _parent_0[name]
  235. else
  236. return val
  237. end
  238. end,
  239. __call = function(cls, ...)
  240. local _self_0 = setmetatable({}, _base_0)
  241. cls.__init(_self_0, ...)
  242. return _self_0
  243. end
  244. })
  245. _base_0.__class = _class_0
  246. if _parent_0.__inherited then
  247. _parent_0.__inherited(_parent_0, _class_0)
  248. end
  249. Benchmark = _class_0
  250. return _class_0
  251. end