Given four files SongController.java, SongRepository.java, SongService.java, and Song.java.
The SongService class has a variable named playlist, which is a HashMap that holds Integers as keys and Song objects as values. Initially, it contains data of 5 songs.
-
Song.java: TheSongclass should contain the following attributes.Attribute Type songId int songName String lyricist String singer String musicDirector String -
SongRepository.java: Create an interface containing required methods. -
SongService.java: Update the service class with logic for managing song data. -
SongController: Create the controller class to handle HTTP requests.
Implement the following APIs.
Returns a list of all songs in the playlist.
[
{
"songId": 1,
"songName": "Butta Bomma",
"lyricist": "Ramajogayya Sastry",
"singer": "Armaan Malik",
"musicDirector": "Thaman S"
},
...
]
Creates a new song in the playlist. songId is auto-incremented.
{
"songName": "Bala",
"lyricist": "Siddharth-Garima",
"singer": "Sachin-Jigar",
"musicDirector": "Sachin-Jigar"
}
{
"songId": 6,
"songName": "Bala",
"lyricist": "Siddharth-Garima",
"singer": "Sachin-Jigar",
"musicDirector": "Sachin-Jigar"
}
Returns a song based on a songId. If the given songId is not found in the playlist, raise ResponseStatusException with HttpStatus.NOT_FOUND.
{
"songId": 3,
"songName": "Tum Hi Ho",
"lyricist": "Mithoon",
"singer": "Arijit Singh",
"musicDirector": "Mithoon"
}
Updates the details of a song in the playlist based on the songId. If the given songId is not found in the playlist, raise ResponseStatusException with HttpStatus.NOT_FOUND.
{
"singer": "Atif Aslam"
}
{
"songId": 3,
"songName": "Tum Hi Ho",
"lyricist": "Mithoon",
"singer": "Atif Aslam",
"musicDirector": "Mithoon"
}
Deletes a song from the playlist based on the songId. If the given songId is not found in the playlist, raise ResponseStatusException with HttpStatus.NOT_FOUND.
Do not modify the code in the SongApplication.java.