From 776c693a275c589c4470b9ba36abc67d685efa00 Mon Sep 17 00:00:00 2001 From: Lukas Weger Date: Sat, 2 Aug 2025 00:24:33 +0200 Subject: [PATCH 1/2] add audio features too add song route --- .../java/com/serena/backend/model/Song.java | 34 +++++++++++++++++-- .../backend/service/RadioStationService.java | 5 --- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/backend/src/main/java/com/serena/backend/model/Song.java b/backend/src/main/java/com/serena/backend/model/Song.java index b693a08..0e92555 100644 --- a/backend/src/main/java/com/serena/backend/model/Song.java +++ b/backend/src/main/java/com/serena/backend/model/Song.java @@ -1,17 +1,31 @@ package com.serena.backend.model; +import java.util.Map; +import java.util.HashMap; + public class Song { private String id; private int popularity; + private double tempo; + private Map audioFeatures; - public Song() {} + public Song() { + this.audioFeatures = new HashMap<>(); + } public Song(String id, int popularity) { this.id = id; this.popularity = popularity; + this.audioFeatures = new HashMap<>(); + } + + public Song(String id, int popularity, double tempo, Map audioFeatures) { + this.id = id; + this.popularity = popularity; + this.tempo = tempo; + this.audioFeatures = audioFeatures != null ? audioFeatures : new HashMap<>(); } - // Getters and Setters public String getId() { return id; } @@ -27,4 +41,20 @@ public class Song { public void setPopularity(int popularity) { this.popularity = popularity; } + + public double getTempo() { + return tempo; + } + + public void setTempo(double tempo) { + this.tempo = tempo; + } + + public Map getAudioFeatures() { + return audioFeatures; + } + + public void setAudioFeatures(Map audioFeatures) { + this.audioFeatures = audioFeatures; + } } diff --git a/backend/src/main/java/com/serena/backend/service/RadioStationService.java b/backend/src/main/java/com/serena/backend/service/RadioStationService.java index cb408a5..1c10e1b 100644 --- a/backend/src/main/java/com/serena/backend/service/RadioStationService.java +++ b/backend/src/main/java/com/serena/backend/service/RadioStationService.java @@ -38,11 +38,6 @@ public class RadioStationService { return new ArrayList<>(radioStations.values()); } - public List getActiveRadioStations() { - return radioStations.values().stream() - .toList(); - } - public Optional updateRadioStation(String stationId, String name, String description) { RadioStation station = radioStations.get(stationId); if (station != null) { From 2a64ee72aa876ec1f1287c32d3ec6d3a95bf144b Mon Sep 17 00:00:00 2001 From: Lukas Weger Date: Sat, 2 Aug 2025 00:42:47 +0200 Subject: [PATCH 2/2] Refactor SongController and RadioStationService to enhance song management functionality --- .../backend/controller/SongController.java | 3 +-- .../backend/service/RadioStationService.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/com/serena/backend/controller/SongController.java b/backend/src/main/java/com/serena/backend/controller/SongController.java index 782e6fe..1694a5c 100644 --- a/backend/src/main/java/com/serena/backend/controller/SongController.java +++ b/backend/src/main/java/com/serena/backend/controller/SongController.java @@ -3,7 +3,6 @@ package com.serena.backend.controller; import com.serena.backend.dto.ApiResponse; import com.serena.backend.dto.ConnectClientRequest; import com.serena.backend.dto.AddSongRequest; -import com.serena.backend.dto.AddSongToStationRequest; import com.serena.backend.service.RadioStationService; import com.serena.backend.service.JwtService; import org.springframework.beans.factory.annotation.Autowired; @@ -30,7 +29,7 @@ public class SongController { } boolean success = radioStationService.addSongToQueue(request.getRadioStationId(), request.getSong()); - + if (success) { return ResponseEntity.ok(new ApiResponse<>(true, "Song added to queue successfully", null)); } else { diff --git a/backend/src/main/java/com/serena/backend/service/RadioStationService.java b/backend/src/main/java/com/serena/backend/service/RadioStationService.java index 1c10e1b..9ab557b 100644 --- a/backend/src/main/java/com/serena/backend/service/RadioStationService.java +++ b/backend/src/main/java/com/serena/backend/service/RadioStationService.java @@ -115,4 +115,21 @@ public class RadioStationService { return new ArrayList<>(); } + public boolean addSongToQueue(String radioStationId, Song song) { + RadioStation station = radioStations.get(radioStationId); + if (station != null) { + station.addSongToQueue(song); + return true; + } + return false; + } + + public Optional getNextSong(String radioStationId) { + RadioStation station = radioStations.get(radioStationId); + if (station != null) { + return Optional.ofNullable(station.getNextSong()); + } + return Optional.empty(); + } + }