page_controller.ex 1.5 KB

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