diff --git a/lib/live_beats/media_library.ex b/lib/live_beats/media_library.ex index 2a413d0..b4fd49b 100644 --- a/lib/live_beats/media_library.ex +++ b/lib/live_beats/media_library.ex @@ -333,7 +333,19 @@ defmodule LiveBeats.MediaLibrary do ) end - Repo.delete(song) + Ecto.Multi.new() + |> Ecto.Multi.delete(:delete, song) + |> Ecto.Multi.update(:update_songs_number, fn _ -> + user = Accounts.get_user!(song.user_id) + + user_params = %{ + songs_number: user.songs_number - 1 + } + + Accounts.User.songs_changeset(user, user_params) + end) + |> Repo.transaction() + end def change_song(song_or_changeset, attrs \\ %{})