page_controller.ex 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. defmodule Hello.PageController do
  2. use Hello.Web, :controller
  3. alias Hello.World
  4. alias Hello.Fortune
  5. plug :action
  6. def index(conn, _params) do
  7. json conn, %{"TE Benchmarks\n" => "Started"}
  8. end
  9. # avoid namespace collision
  10. def _json(conn, _params) do
  11. json conn, %{message: "Hello, world!"}
  12. end
  13. def db(conn, _params) do
  14. json conn, Repo.get(World, :random.uniform(10000))
  15. end
  16. def queries(conn, _params) do
  17. q = try do
  18. case String.to_integer(_params["queries"]) do
  19. x when x < 1 -> 1
  20. x when x > 500 -> 500
  21. x -> x
  22. end
  23. rescue
  24. ArgumentError -> 1
  25. end
  26. json conn, Enum.map(1..q, fn _ -> Repo.get(World, :random.uniform(10000)) end)
  27. end
  28. def fortunes(conn, _params) do
  29. fortunes = List.insert_at(Repo.all(Fortune), 0, %Fortune{:id => 0, :message => "Additional fortune added at request time."})
  30. render conn, "fortunes.html", fortunes: Enum.sort(fortunes, fn f1, f2 -> f1.message < f2.message end)
  31. end
  32. def updates(conn, _params) do
  33. q = try do
  34. case String.to_integer(_params["queries"]) do
  35. x when x < 1 -> 1
  36. x when x > 500 -> 500
  37. x -> x
  38. end
  39. rescue
  40. ArgumentError -> 1
  41. end
  42. json conn, Enum.map(1..q, fn _ ->
  43. w = Repo.get(World, :random.uniform(10000))
  44. changeset = World.changeset(w, %{randomNumber: :random.uniform(10000)})
  45. Repo.update(changeset)
  46. w end)
  47. end
  48. def plaintext(conn, _params) do
  49. text conn, "Hello, world!"
  50. end
  51. end