Fix signature of LastFm.Feed.update/1

This commit is contained in:
Claudio Ortolina
2025-08-11 11:59:44 +03:00
parent af7c235491
commit 1ca1dcf0f3
3 changed files with 8 additions and 6 deletions
+3 -1
View File
@@ -21,7 +21,7 @@ defmodule LastFm.Feed do
:last_fm_data :last_fm_data
] ]
@spec update([LastFm.Track.t()]) :: :ok | no_return @spec update([LastFm.Track.t()]) :: {:ok, non_neg_integer()} | no_return
def update(tracks) do def update(tracks) do
track_params = track_params =
tracks tracks
@@ -37,6 +37,8 @@ defmodule LastFm.Feed do
MusicLibrary.ScrobbleRules.apply_all_rules() MusicLibrary.ScrobbleRules.apply_all_rules()
Phoenix.PubSub.broadcast(LastFm.PubSub, "feed:update", %{track_count: count}) Phoenix.PubSub.broadcast(LastFm.PubSub, "feed:update", %{track_count: count})
{:ok, count}
end end
@spec all_tracks(non_neg_integer()) :: [LastFm.Track.t()] @spec all_tracks(non_neg_integer()) :: [LastFm.Track.t()]
@@ -12,14 +12,14 @@ defmodule LastFm.Worker.BackfillScrobbledTracks do
# use the returning count to determine if we reached the end of the backfilling # use the returning count to determine if we reached the end of the backfilling
# process. # process.
case LastFm.Import.batch(to_uts: to_uts, limit: @batch_size) do case LastFm.Import.batch(to_uts: to_uts, limit: @batch_size) do
{@batch_size, nil} -> {:ok, @batch_size} ->
next_to_uts = LastFm.lowest_scrobbled_at_uts() next_to_uts = LastFm.lowest_scrobbled_at_uts()
%{"to_uts" => next_to_uts} %{"to_uts" => next_to_uts}
|> new(schedule_in: @backfill_delay) |> new(schedule_in: @backfill_delay)
|> BackgroundRepo.insert() |> BackgroundRepo.insert()
{other_count, nil} when is_integer(other_count) -> {:ok, _other_count} ->
:ok :ok
error -> error ->
+3 -3
View File
@@ -40,16 +40,16 @@ defmodule LastFm.FeedTest do
test "it stores the track and broadcasts the updated track count" do test "it stores the track and broadcasts the updated track count" do
:ok = Feed.subscribe() :ok = Feed.subscribe()
:ok = Feed.update([@track_two, @track_one]) assert {:ok, 2} == Feed.update([@track_two, @track_one])
assert_receive %{track_count: 2} assert_receive %{track_count: 2}
# Tracks have already been inserted, count of new tracks is 0 # Tracks have already been inserted, count of new tracks is 0
:ok = Feed.update([@track_two, @track_one]) assert {:ok, 0} == Feed.update([@track_two, @track_one])
assert_receive %{track_count: 0} assert_receive %{track_count: 0}
end end
test "it returns tracks in descending order of scrobble" do test "it returns tracks in descending order of scrobble" do
:ok = Feed.update([@track_two, @track_one]) assert {:ok, 2} == Feed.update([@track_two, @track_one])
track_two_scrobbled_at_uts = @track_two.scrobbled_at_uts track_two_scrobbled_at_uts = @track_two.scrobbled_at_uts
track_one_scrobbled_at_uts = @track_one.scrobbled_at_uts track_one_scrobbled_at_uts = @track_one.scrobbled_at_uts