Shape track websocket payloads
This commit is contained in:
@@ -56,18 +56,34 @@ export class TrackService {
|
|||||||
this.io.emit(WsTrackOperation.Delete, { id });
|
this.io.emit(WsTrackOperation.Delete, { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private toClientTrack(track: TrackEntity): Partial<TrackEntity> {
|
||||||
|
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<void> {
|
async create(track: TrackEntity, playlist?: PlaylistEntity): Promise<void> {
|
||||||
const savedTrack = await this.repository.save({ ...track, playlist });
|
const savedTrack = await this.repository.save({ ...track, playlist });
|
||||||
await this.enqueueSearch(savedTrack.id);
|
await this.enqueueSearch(savedTrack.id);
|
||||||
this.io.emit(WsTrackOperation.New, {
|
this.io.emit(WsTrackOperation.New, {
|
||||||
track: savedTrack,
|
track: this.toClientTrack(savedTrack),
|
||||||
playlistId: playlist.id,
|
playlistId: playlist.id,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async update(id: number, track: TrackEntity): Promise<void> {
|
async update(id: number, track: TrackEntity): Promise<void> {
|
||||||
await this.repository.update(id, track);
|
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[] {
|
private parseRejectedYoutubeUrls(track: TrackEntity): string[] {
|
||||||
|
|||||||
Reference in New Issue
Block a user