Rename /images to /covers
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
defmodule MusicLibraryWeb.ImageController do
|
defmodule MusicLibraryWeb.CoverController do
|
||||||
use MusicLibraryWeb, :controller
|
use MusicLibraryWeb, :controller
|
||||||
|
|
||||||
alias MusicLibrary.Records
|
alias MusicLibrary.Records
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
<dt>
|
<dt>
|
||||||
<img
|
<img
|
||||||
class="absolute max-w-12 rounded-lg shadow"
|
class="absolute max-w-12 rounded-lg shadow"
|
||||||
src={~p"/images/#{@latest_record.id}"}
|
src={~p"/covers/#{@latest_record.id}"}
|
||||||
alt={@latest_record.title}
|
alt={@latest_record.title}
|
||||||
/>
|
/>
|
||||||
<p class="ml-16 truncate text-sm font-medium text-gray-500">Latest record</p>
|
<p class="ml-16 truncate text-sm font-medium text-gray-500">Latest record</p>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
<img
|
<img
|
||||||
class="max-w-16 rounded-lg"
|
class="max-w-16 rounded-lg"
|
||||||
alt={record.title}
|
alt={record.title}
|
||||||
src={~p"/images/#{record.id}?vsn=#{record.cover_hash || ""}"}
|
src={~p"/covers/#{record.id}?vsn=#{record.cover_hash || ""}"}
|
||||||
/>
|
/>
|
||||||
<span class="absolute right-1 bottom-0 block text-white drop-shadow-md">
|
<span class="absolute right-1 bottom-0 block text-white drop-shadow-md">
|
||||||
<%= Records.Record.format_short_label(record.format) %>
|
<%= Records.Record.format_short_label(record.format) %>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<span class="relative block md:inline-block drop-shadow">
|
<span class="relative block md:inline-block drop-shadow">
|
||||||
<img
|
<img
|
||||||
class="w-full"
|
class="w-full"
|
||||||
src={~p"/images/#{@record.id}?vsn=#{@record.cover_hash || ""}"}
|
src={~p"/covers/#{@record.id}?vsn=#{@record.cover_hash || ""}"}
|
||||||
alt={@record.title}
|
alt={@record.title}
|
||||||
/>
|
/>
|
||||||
<span class="absolute right-2 bottom-1 block text-white drop-shadow-md">
|
<span class="absolute right-2 bottom-1 block text-white drop-shadow-md">
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ defmodule MusicLibraryWeb.Router do
|
|||||||
pipe_through :browser
|
pipe_through :browser
|
||||||
|
|
||||||
get "/health", HealthController, :index
|
get "/health", HealthController, :index
|
||||||
get "/images/:record_id", ImageController, :show
|
get "/covers/:record_id", CoverController, :show
|
||||||
get "/", StatsController, :index
|
get "/", StatsController, :index
|
||||||
|
|
||||||
live "/records", RecordLive.Index, :index
|
live "/records", RecordLive.Index, :index
|
||||||
|
|||||||
+8
-8
@@ -1,4 +1,4 @@
|
|||||||
defmodule MusicLibraryWeb.ImageControllerTest do
|
defmodule MusicLibraryWeb.CoverControllerTest do
|
||||||
use MusicLibraryWeb.ConnCase
|
use MusicLibraryWeb.ConnCase
|
||||||
|
|
||||||
import MusicLibrary.RecordsFixtures
|
import MusicLibrary.RecordsFixtures
|
||||||
@@ -7,18 +7,18 @@ defmodule MusicLibraryWeb.ImageControllerTest do
|
|||||||
%{record: record_fixture()}
|
%{record: record_fixture()}
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "GET /images/:record_id" do
|
describe "GET /covers/:record_id" do
|
||||||
setup [:create_record]
|
setup [:create_record]
|
||||||
|
|
||||||
test "404s when record doesn't exist", %{conn: conn} do
|
test "404s when record doesn't exist", %{conn: conn} do
|
||||||
id = Ecto.UUID.generate()
|
id = Ecto.UUID.generate()
|
||||||
|
|
||||||
conn = get(conn, ~p"/images/#{id}")
|
conn = get(conn, ~p"/covers/#{id}")
|
||||||
assert text_response(conn, 404) == "Not found"
|
assert text_response(conn, 404) == "Not found"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "serves the image when etag doesn't exist", %{conn: conn, record: record} do
|
test "serves the cover when etag doesn't exist", %{conn: conn, record: record} do
|
||||||
conn = get(conn, ~p"/images/#{record.id}")
|
conn = get(conn, ~p"/covers/#{record.id}")
|
||||||
|
|
||||||
assert conn.status == 200
|
assert conn.status == 200
|
||||||
assert get_resp_header(conn, "content-type") == ["image/jpeg; charset=utf-8"]
|
assert get_resp_header(conn, "content-type") == ["image/jpeg; charset=utf-8"]
|
||||||
@@ -27,11 +27,11 @@ defmodule MusicLibraryWeb.ImageControllerTest do
|
|||||||
assert conn.resp_body == record.cover_data
|
assert conn.resp_body == record.cover_data
|
||||||
end
|
end
|
||||||
|
|
||||||
test "serves the image when etag doesn't match", %{conn: conn, record: record} do
|
test "serves the cover when etag doesn't match", %{conn: conn, record: record} do
|
||||||
conn =
|
conn =
|
||||||
conn
|
conn
|
||||||
|> put_req_header("if-none-match", "invalid-etag")
|
|> put_req_header("if-none-match", "invalid-etag")
|
||||||
|> get(~p"/images/#{record.id}")
|
|> get(~p"/covers/#{record.id}")
|
||||||
|
|
||||||
assert conn.status == 200
|
assert conn.status == 200
|
||||||
assert get_resp_header(conn, "content-type") == ["image/jpeg; charset=utf-8"]
|
assert get_resp_header(conn, "content-type") == ["image/jpeg; charset=utf-8"]
|
||||||
@@ -44,7 +44,7 @@ defmodule MusicLibraryWeb.ImageControllerTest do
|
|||||||
conn =
|
conn =
|
||||||
conn
|
conn
|
||||||
|> put_req_header("if-none-match", record.cover_hash)
|
|> put_req_header("if-none-match", record.cover_hash)
|
||||||
|> get(~p"/images/#{record.id}")
|
|> get(~p"/covers/#{record.id}")
|
||||||
|
|
||||||
assert conn.status == 304
|
assert conn.status == 304
|
||||||
assert get_resp_header(conn, "content-type") == []
|
assert get_resp_header(conn, "content-type") == []
|
||||||
@@ -46,7 +46,7 @@ defmodule MusicLibraryWeb.RecordIndexTest do
|
|||||||
assert record_row_html =~ to_string(record.release)
|
assert record_row_html =~ to_string(record.release)
|
||||||
assert record_row_html =~ Record.format_short_label(record.format)
|
assert record_row_html =~ Record.format_short_label(record.format)
|
||||||
assert record_row_html =~ record.release
|
assert record_row_html =~ record.release
|
||||||
assert record_row_html =~ ~p"/images/#{record.id}?vsn=#{record.cover_hash}"
|
assert record_row_html =~ ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
||||||
|
|
||||||
for artist <- record.artists do
|
for artist <- record.artists do
|
||||||
assert record_row_html =~ escape(artist["name"])
|
assert record_row_html =~ escape(artist["name"])
|
||||||
@@ -115,7 +115,7 @@ defmodule MusicLibraryWeb.RecordIndexTest do
|
|||||||
record = record_fixture(cover_data: File.read!(marbles_cover_fixture()))
|
record = record_fixture(cover_data: File.read!(marbles_cover_fixture()))
|
||||||
{:ok, form_live, html} = live(conn, ~p"/records/#{record.id}/edit")
|
{:ok, form_live, html} = live(conn, ~p"/records/#{record.id}/edit")
|
||||||
|
|
||||||
assert html =~ ~p"/images/#{record.id}?vsn=#{record.cover_hash}"
|
assert html =~ ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
||||||
|
|
||||||
cover_metadata = cover_metadata(raven_cover_fixture())
|
cover_metadata = cover_metadata(raven_cover_fixture())
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ defmodule MusicLibraryWeb.RecordIndexTest do
|
|||||||
|
|
||||||
assert updated_cover.cover_hash !== record.cover_hash
|
assert updated_cover.cover_hash !== record.cover_hash
|
||||||
|
|
||||||
assert list_html =~ ~p"/images/#{record.id}?vsn=#{updated_cover.cover_hash}"
|
assert list_html =~ ~p"/covers/#{record.id}?vsn=#{updated_cover.cover_hash}"
|
||||||
end
|
end
|
||||||
|
|
||||||
defp cover_metadata(path) do
|
defp cover_metadata(path) do
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ defmodule MusicLibraryWeb.RecordShowTest do
|
|||||||
assert html =~ to_string(record.release)
|
assert html =~ to_string(record.release)
|
||||||
assert html =~ Record.format_short_label(record.format)
|
assert html =~ Record.format_short_label(record.format)
|
||||||
assert html =~ record.release
|
assert html =~ record.release
|
||||||
assert html =~ ~p"/images/#{record.id}?vsn=#{record.cover_hash}"
|
assert html =~ ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
||||||
|
|
||||||
for artist <- record.artists do
|
for artist <- record.artists do
|
||||||
assert html =~ escape(artist["name"])
|
assert html =~ escape(artist["name"])
|
||||||
|
|||||||
Reference in New Issue
Block a user