this repo has no description
1defmodule EslHnWeb.API.Controller do 2 @moduledoc """ 3 Controller for serving HN top stories cache 4 """ 5 6 use EslHnWeb, :controller 7 8 def index(conn, params) do 9 page = get_page(params["page"]) 10 11 render(conn, items: EslHn.all(page)) 12 end 13 14 def show(conn, %{"id" => id}) do 15 with {:ok, id} <- try_int(id), 16 {:ok, story} <- EslHn.story(id) do 17 render(conn, item: story) 18 else 19 _ -> 20 conn 21 |> put_status(:not_found) 22 |> put_view(EslHnWeb.Error.JSON) 23 |> render(:"404", %{}) 24 end 25 end 26 27 defp get_page(nil), do: 1 28 29 defp get_page(input) do 30 String.to_integer(input) 31 end 32 33 defp try_int(value) do 34 case Integer.parse(value) do 35 {int, ""} -> {:ok, int} 36 _ -> :error 37 end 38 end 39end