page_controller.ex 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. conn
  7. |> json(%{"TE Benchmarks\n" => "Started"})
  8. end
  9. # avoid namespace collision
  10. def _json(conn, _params) do
  11. conn
  12. |> json(%{message: "Hello, world!"})
  13. end
  14. def db(conn, _params) do
  15. conn
  16. |> json(Repo.get(World, :rand.uniform(10000)))
  17. end
  18. def queries(conn, params) do
  19. q = try do
  20. case String.to_integer(params["queries"]) do
  21. x when x < 1 -> 1
  22. x when x > 500 -> 500
  23. x -> x
  24. end
  25. rescue
  26. ArgumentError -> 1
  27. end
  28. conn
  29. |> json(Enum.map(1..q, fn _ -> Repo.get(World, :rand.uniform(10000)) end))
  30. end
  31. def fortunes(conn, _params) do
  32. additional_fortune = %Fortune{
  33. id: 0,
  34. message: "Additional fortune added at request time."
  35. }
  36. fortunes = [additional_fortune | Repo.all(Fortune)]
  37. render conn, "fortunes.html", fortunes: Enum.sort(fortunes, fn f1, f2 -> f1.message < f2.message end)
  38. end
  39. def updates(conn, params) do
  40. q = try do
  41. case String.to_integer(params["queries"]) do
  42. x when x < 1 -> 1
  43. x when x > 500 -> 500
  44. x -> x
  45. end
  46. rescue
  47. ArgumentError -> 1
  48. end
  49. conn
  50. |> json(Enum.map(1..q, fn _ ->
  51. w = Repo.get(World, :rand.uniform(10000))
  52. changeset = World.changeset(w, %{randomNumber: :rand.uniform(10000)})
  53. Repo.update(changeset)
  54. w
  55. end))
  56. end
  57. def plaintext(conn, _params) do
  58. conn
  59. |> text("Hello, world!")
  60. end
  61. end