From cb3ae8a04515a693a8ce0a29c134029f386c54fd Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Wed, 3 Apr 2024 15:26:14 -0700 Subject: [PATCH] [WIP] ordering app queries --- .../media_profile_controller.ex | 22 +++++++++++---- .../controllers/sources/source_controller.ex | 28 ++++++++++++++++--- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/lib/pinchflat_web/controllers/media_profiles/media_profile_controller.ex b/lib/pinchflat_web/controllers/media_profiles/media_profile_controller.ex index 4b130e7..cc638ec 100644 --- a/lib/pinchflat_web/controllers/media_profiles/media_profile_controller.ex +++ b/lib/pinchflat_web/controllers/media_profiles/media_profile_controller.ex @@ -1,12 +1,19 @@ defmodule PinchflatWeb.MediaProfiles.MediaProfileController do use PinchflatWeb, :controller + import Ecto.Query, warn: false + alias Pinchflat.Repo alias Pinchflat.Profiles + alias Pinchflat.Sources.SourcesQuery alias Pinchflat.Profiles.MediaProfile def index(conn, _params) do - media_profiles = Profiles.list_media_profiles() + media_profiles = + MediaProfile + |> order_by(asc: :name) + |> Repo.all() + render(conn, :index, media_profiles: media_profiles) end @@ -32,12 +39,15 @@ defmodule PinchflatWeb.MediaProfiles.MediaProfileController do end def show(conn, %{"id" => id}) do - media_profile = - id - |> Profiles.get_media_profile!() - |> Repo.preload(:sources) + media_profile = Profiles.get_media_profile!(id) - render(conn, :show, media_profile: media_profile) + sources = + SourcesQuery.new() + |> SourcesQuery.for_media_profile(media_profile) + |> order_by(asc: :custom_name) + |> Repo.all() + + render(conn, :show, media_profile: media_profile, sources: sources) end def edit(conn, %{"id" => id}) do diff --git a/lib/pinchflat_web/controllers/sources/source_controller.ex b/lib/pinchflat_web/controllers/sources/source_controller.ex index 168c148..5153e3c 100644 --- a/lib/pinchflat_web/controllers/sources/source_controller.ex +++ b/lib/pinchflat_web/controllers/sources/source_controller.ex @@ -8,13 +8,19 @@ defmodule PinchflatWeb.Sources.SourceController do alias Pinchflat.Tasks alias Pinchflat.Sources alias Pinchflat.Profiles + alias Pinchflat.MediaQuery alias Pinchflat.Sources.Source alias Pinchflat.Media.MediaQuery + alias Pinchflat.Profiles.MediaProfile alias Pinchflat.Downloading.DownloadingHelpers alias Pinchflat.SlowIndexing.SlowIndexingHelpers def index(conn, _params) do - sources = Repo.preload(Sources.list_sources(), :media_profile) + sources = + Source + |> order_by(asc: :custom_name) + |> Repo.all() + |> Repo.preload(:media_profile) render(conn, :index, sources: sources) end @@ -56,8 +62,20 @@ defmodule PinchflatWeb.Sources.SourceController do |> Tasks.list_tasks_for(nil, [:executing, :available, :scheduled, :retryable]) |> Repo.preload(:job) - pending_media = Media.list_pending_media_items_for(source, limit: 100) - downloaded_media = Media.list_downloaded_media_items_for(source, limit: 100) + pending_media = + source + |> Media.pending_media_items_for() + |> order_by(desc: :id) + |> limit(100) + |> Repo.all() + + downloaded_media = + MediaQuery.new() + |> MediaQuery.for_source(source) + |> MediaQuery.with_media_filepath() + |> order_by(desc: :id) + |> limit(100) + |> Repo.all() render(conn, :show, source: source, @@ -129,7 +147,9 @@ defmodule PinchflatWeb.Sources.SourceController do end defp media_profiles do - Profiles.list_media_profiles() + MediaProfile + |> order_by(asc: :name) + |> Repo.all() end defp total_downloaded_for(source) do