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
]
@spec update([LastFm.Track.t()]) :: :ok | no_return
@spec update([LastFm.Track.t()]) :: {:ok, non_neg_integer()} | no_return
def update(tracks) do
track_params =
tracks
@@ -37,6 +37,8 @@ defmodule LastFm.Feed do
MusicLibrary.ScrobbleRules.apply_all_rules()
Phoenix.PubSub.broadcast(LastFm.PubSub, "feed:update", %{track_count: count})
{:ok, count}
end
@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
# process.
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()
%{"to_uts" => next_to_uts}
|> new(schedule_in: @backfill_delay)
|> BackgroundRepo.insert()
{other_count, nil} when is_integer(other_count) ->
{:ok, _other_count} ->
:ok
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
:ok = Feed.subscribe()
:ok = Feed.update([@track_two, @track_one])
assert {:ok, 2} == Feed.update([@track_two, @track_one])
assert_receive %{track_count: 2}
# 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}
end
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_one_scrobbled_at_uts = @track_one.scrobbled_at_uts