web.lua 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  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 random
  24. do
  25. local _obj_0 = math
  26. random = _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. ["/"] = function(self)
  101. return {
  102. json = {
  103. message = "Hello, World!"
  104. }
  105. }
  106. end,
  107. ["/db"] = function(self)
  108. local num_queries = tonumber(self.params.queries) or 1
  109. if num_queries < 2 then
  110. local w = World:find(random(1, 10000))
  111. return {
  112. json = {
  113. id = w.id,
  114. randomNumber = w.randomnumber
  115. }
  116. }
  117. end
  118. local worlds = { }
  119. for i = 1, num_queries do
  120. local w = World:find(random(1, 10000))
  121. insert(worlds, {
  122. id = w.id,
  123. randomNumber = w.randomnumber
  124. })
  125. end
  126. return {
  127. json = worlds
  128. }
  129. end,
  130. ["/fortunes"] = function(self)
  131. self.fortunes = Fortune:select("")
  132. insert(self.fortunes, {
  133. id = 0,
  134. message = "Additional fortune added at request time."
  135. })
  136. sort(self.fortunes, function(a, b)
  137. return a.message < b.message
  138. end)
  139. return {
  140. layout = false
  141. }, self:html(function()
  142. raw('<!DOCTYPE HTML>')
  143. return html(function()
  144. head(function()
  145. return title("Fortunes")
  146. end)
  147. return body(function()
  148. return element("table", function()
  149. tr(function()
  150. th(function()
  151. return text("id")
  152. end)
  153. return th(function()
  154. return text("message")
  155. end)
  156. end)
  157. local _list_0 = self.fortunes
  158. for _index_0 = 1, #_list_0 do
  159. local fortune = _list_0[_index_0]
  160. tr(function()
  161. td(function()
  162. return text(fortune.id)
  163. end)
  164. return td(function()
  165. return text(fortune.message)
  166. end)
  167. end)
  168. end
  169. end)
  170. end)
  171. end)
  172. end)
  173. end,
  174. ["/update"] = function(self)
  175. local num_queries = tonumber(self.params.queries) or 1
  176. if num_queries == 0 then
  177. num_queries = 1
  178. end
  179. local worlds = { }
  180. for i = 1, num_queries do
  181. local wid = random(1, 10000)
  182. local world = World:find(wid)
  183. world.randomnumber = random(1, 10000)
  184. world:update("randomnumber")
  185. insert(worlds, {
  186. id = world.id,
  187. randomNumber = world.randomnumber
  188. })
  189. end
  190. if num_queries < 2 then
  191. return {
  192. json = worlds[1]
  193. }
  194. end
  195. return {
  196. json = worlds
  197. }
  198. end,
  199. ["/plaintext"] = function(self)
  200. return {
  201. content_type = "text/plain",
  202. layout = false
  203. }, "Hello, World!"
  204. end
  205. }
  206. _base_0.__index = _base_0
  207. setmetatable(_base_0, _parent_0.__base)
  208. local _class_0 = setmetatable({
  209. __init = function(self, ...)
  210. return _parent_0.__init(self, ...)
  211. end,
  212. __base = _base_0,
  213. __name = "Benchmark",
  214. __parent = _parent_0
  215. }, {
  216. __index = function(cls, name)
  217. local val = rawget(_base_0, name)
  218. if val == nil then
  219. return _parent_0[name]
  220. else
  221. return val
  222. end
  223. end,
  224. __call = function(cls, ...)
  225. local _self_0 = setmetatable({}, _base_0)
  226. cls.__init(_self_0, ...)
  227. return _self_0
  228. end
  229. })
  230. _base_0.__class = _class_0
  231. if _parent_0.__inherited then
  232. _parent_0.__inherited(_parent_0, _class_0)
  233. end
  234. Benchmark = _class_0
  235. return _class_0
  236. end