page_controller.ex 2.1 KB

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