Entendu/lib/entendu_web/controllers/link_controller.ex

48 lines
1.0 KiB
Elixir

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