defmodule EntenduWeb.LinkController do @moduledoc """ Controller responsible for managing links responses """ use EntenduWeb, :controller use Params alias Entendu.Links alias Links.Link alias Ecto.Changeset def just_page(conn, _params) do render(conn, "just.html") end defparams first_step %{ burn_after_reading: [field: :boolean, default: false], expires: :utc_datetime, filename: :string, filetype: :string, text_content: :string, file_content: :string } def just(conn, params) do with %Changeset{valid?: true} = changeset <- first_step(params), link_params <- Params.to_map(changeset), {:ok, %Link{} = link} <- Links.create_link(link_params) do conn |> assign(:link, link) |> render("show_authorized", link: link) end end def for_page(conn, _params) do render(conn, "for.html") end def for(_conn, %{username: _username, service: _service}) do {:error, "not implemented"} end def you_page(conn, _params) do render(conn, "you.html") end end