Just took a quick pass over the code and it looks good to me. I'll give it a more thorough review later.
In TrackDAO::purgeTracks make sure to use ScopedTransaction instead of manually beginning and rolling back in every error case.
Just took a quick pass over the code and it looks good to me. I'll give it a more thorough review later.
In TrackDAO: :purgeTracks make sure to use ScopedTransaction instead of manually beginning and rolling back in every error case.