defmodule ElphWeb.MediaController do
@moduledoc """
This controller provides the function to upload new media files.
"""
use ElphWeb, :controller
alias Elph.Contents
action_fallback Application.get_env(:elph, :fallback_controller, ElphWeb.FallbackController)
def create(conn, %{"file" => %Plug.Upload{} = upload}) do
file = %{name: upload.filename, path: upload.path, mime: upload.content_type}
with {:ok, %{} = content} <- Contents.create_media_content(file) do
conn
|> put_view(ElphWeb.ContentView)
|> render("show.json", content: content)
end
end
end