From 1f3131d99abf153b99d97f5d2555d228324acf22 Mon Sep 17 00:00:00 2001 From: TorMatzAndren Date: Sat, 16 May 2026 12:45:02 +0200 Subject: [PATCH] Shape track websocket payloads --- src/backend/src/track/track.service.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/backend/src/track/track.service.ts b/src/backend/src/track/track.service.ts index 45cbe8f..809153f 100644 --- a/src/backend/src/track/track.service.ts +++ b/src/backend/src/track/track.service.ts @@ -56,18 +56,34 @@ export class TrackService { this.io.emit(WsTrackOperation.Delete, { id }); } + private toClientTrack(track: TrackEntity): Partial { + return { + id: track.id, + artist: track.artist, + name: track.name, + spotifyUrl: track.spotifyUrl, + youtubeUrl: track.youtubeUrl, + downloadAttemptCount: track.downloadAttemptCount, + status: track.status, + error: track.error, + coverUrl: track.coverUrl, + durationMs: track.durationMs, + createdAt: track.createdAt, + }; + } + async create(track: TrackEntity, playlist?: PlaylistEntity): Promise { const savedTrack = await this.repository.save({ ...track, playlist }); await this.enqueueSearch(savedTrack.id); this.io.emit(WsTrackOperation.New, { - track: savedTrack, + track: this.toClientTrack(savedTrack), playlistId: playlist.id, }); } async update(id: number, track: TrackEntity): Promise { await this.repository.update(id, track); - this.io.emit(WsTrackOperation.Update, track); + this.io.emit(WsTrackOperation.Update, this.toClientTrack(track)); } private parseRejectedYoutubeUrls(track: TrackEntity): string[] {