From c9931f5906d023d104a707965d755b3b21faebec Mon Sep 17 00:00:00 2001 From: Andrew DeMaria Date: Thu, 8 Jun 2017 19:43:44 -0600 Subject: [PATCH 1/2] Update to mostly support subsonic api 1.15.0 Signed-off-by: Andrew DeMaria --- .../player/controller/JAXBWriter.java | 50 +++--- .../player/controller/RESTController.java | 151 +++++++++++++++--- .../player/security/GlobalSecurityConfig.java | 2 +- .../main/resources/libresonic-rest-api.xsd | 72 ++++++++- 4 files changed, 225 insertions(+), 50 deletions(-) diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/JAXBWriter.java b/libresonic-main/src/main/java/org/libresonic/player/controller/JAXBWriter.java index f0760ea3..692c7cd6 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/JAXBWriter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/JAXBWriter.java @@ -26,12 +26,12 @@ import org.jdom.Attribute; import org.jdom.Document; import org.jdom.input.SAXBuilder; import org.libresonic.player.util.StringUtil; -import org.libresonic.restapi.Error; -import org.libresonic.restapi.ObjectFactory; -import org.libresonic.restapi.Response; -import org.libresonic.restapi.ResponseStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.subsonic.restapi.Error; +import org.subsonic.restapi.ObjectFactory; +import org.subsonic.restapi.Response; +import org.subsonic.restapi.ResponseStatus; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -40,6 +40,7 @@ import javax.xml.bind.Marshaller; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; +import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; import java.util.Date; @@ -69,20 +70,30 @@ public class JAXBWriter { } } - private Marshaller createXmlMarshaller() throws JAXBException { - Marshaller marshaller = jaxbContext.createMarshaller(); - marshaller.setProperty(Marshaller.JAXB_ENCODING, StringUtil.ENCODING_UTF8); - marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); - return marshaller; + private Marshaller createXmlMarshaller() { + Marshaller marshaller = null; + try { + marshaller = jaxbContext.createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_ENCODING, StringUtil.ENCODING_UTF8); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + return marshaller; + } catch (JAXBException e) { + throw new RuntimeException(e); + } } - private Marshaller createJsonMarshaller() throws JAXBException { - Marshaller marshaller = jaxbContext.createMarshaller(); - marshaller.setProperty(Marshaller.JAXB_ENCODING, StringUtil.ENCODING_UTF8); - marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); - marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json"); - marshaller.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, true); - return marshaller; + private Marshaller createJsonMarshaller() { + try { + Marshaller marshaller; + marshaller = jaxbContext.createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_ENCODING, StringUtil.ENCODING_UTF8); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json"); + marshaller.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, true); + return marshaller; + } catch (JAXBException e) { + throw new RuntimeException(e); + } } private String getRESTProtocolVersion() throws Exception { @@ -105,11 +116,10 @@ public class JAXBWriter { Response response = new ObjectFactory().createResponse(); response.setStatus(ok ? ResponseStatus.OK : ResponseStatus.FAILED); response.setVersion(restProtocolVersion); - response.setType("Libresonic"); return response; } - public void writeResponse(HttpServletRequest request, HttpServletResponse httpResponse, Response jaxbResponse) throws Exception { + public void writeResponse(HttpServletRequest request, HttpServletResponse httpResponse, Response jaxbResponse) { String format = getStringParameter(request, "f", "xml"); String jsonpCallback = request.getParameter("callback"); @@ -140,9 +150,9 @@ public class JAXBWriter { writer.append(");"); } httpResponse.getWriter().append(writer.getBuffer()); - } catch (Exception x) { + } catch (JAXBException | IOException x) { LOG.error("Failed to marshal JAXB", x); - throw x; + throw new RuntimeException(x); } } diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java index bda4e198..0212c06d 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java @@ -20,6 +20,7 @@ package org.libresonic.player.controller; import org.apache.commons.lang.StringUtils; +import org.apache.http.HttpStatus; import org.libresonic.player.ajax.LyricsInfo; import org.libresonic.player.ajax.LyricsService; import org.libresonic.player.ajax.PlayQueueService; @@ -41,17 +42,17 @@ import org.libresonic.player.service.*; import org.libresonic.player.util.Pair; import org.libresonic.player.util.StringUtil; import org.libresonic.player.util.Util; -import org.libresonic.restapi.*; -import org.libresonic.restapi.Genres; -import org.libresonic.restapi.PodcastStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; +import org.subsonic.restapi.*; +import org.subsonic.restapi.PodcastStatus; import javax.annotation.PostConstruct; import javax.servlet.http.HttpServletRequest; @@ -137,10 +138,15 @@ public class RESTController { private BookmarkDao bookmarkDao; @Autowired private PlayQueueDao playQueueDao; + @Autowired + private MediaScannerService mediaScannerService; private final Map bookmarkCache = new ConcurrentHashMap(); private final JAXBWriter jaxbWriter = new JAXBWriter(); + private static final String NOT_YET_IMPLEMENTED = "Not yet implemented"; + private static final String NO_LONGER_SUPPORTED = "No longer supported"; + @PostConstruct public void init() { refreshBookmarkCache(); @@ -192,7 +198,7 @@ public class RESTController { MusicFolders musicFolders = new MusicFolders(); String username = securityService.getCurrentUsername(request); for (MusicFolder musicFolder : settingsService.getMusicFoldersForUser(username)) { - org.libresonic.restapi.MusicFolder mf = new org.libresonic.restapi.MusicFolder(); + org.subsonic.restapi.MusicFolder mf = new org.subsonic.restapi.MusicFolder(); mf.setId(musicFolder.getId()); mf.setName(musicFolder.getName()); musicFolders.getMusicFolder().add(mf); @@ -246,7 +252,7 @@ public class RESTController { for (MediaFile mediaFile : artist.getMediaFiles()) { if (mediaFile.isDirectory()) { Date starredDate = mediaFileDao.getMediaFileStarredDate(mediaFile.getId(), username); - org.libresonic.restapi.Artist a = new org.libresonic.restapi.Artist(); + org.subsonic.restapi.Artist a = new org.subsonic.restapi.Artist(); index.getArtist().add(a); a.setId(String.valueOf(mediaFile.getId())); a.setName(artist.getName()); @@ -275,10 +281,10 @@ public class RESTController { @RequestMapping(value = "/getGenres", method = {RequestMethod.GET, RequestMethod.POST}) public void getGenres(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); - Genres genres = new Genres(); + org.subsonic.restapi.Genres genres = new org.subsonic.restapi.Genres(); for (Genre genre : mediaFileDao.getGenres(false)) { - org.libresonic.restapi.Genre g = new org.libresonic.restapi.Genre(); + org.subsonic.restapi.Genre g = new org.subsonic.restapi.Genre(); genres.getGenre().add(g); g.setContent(genre.getName()); g.setAlbumCount(genre.getAlbumCount()); @@ -498,8 +504,8 @@ public class RESTController { return jaxbArtist; } - private org.libresonic.restapi.Artist createJaxbArtist(MediaFile artist, String username) { - org.libresonic.restapi.Artist result = new org.libresonic.restapi.Artist(); + private org.subsonic.restapi.Artist createJaxbArtist(MediaFile artist, String username) { + org.subsonic.restapi.Artist result = new org.subsonic.restapi.Artist(); result.setId(String.valueOf(artist.getId())); result.setName(artist.getArtist()); Date starred = mediaFileDao.getMediaFileStarredDate(artist.getId(), username); @@ -552,7 +558,7 @@ public class RESTController { return jaxbAlbum; } - private T createJaxbPlaylist(T jaxbPlaylist, Playlist playlist) { + private T createJaxbPlaylist(T jaxbPlaylist, Playlist playlist) { jaxbPlaylist.setId(String.valueOf(playlist.getId())); jaxbPlaylist.setName(playlist.getName()); jaxbPlaylist.setComment(playlist.getComment()); @@ -644,6 +650,7 @@ public class RESTController { } directory.setName(dir.getName()); directory.setStarred(jaxbWriter.convertDate(mediaFileDao.getMediaFileStarredDate(id, username))); + directory.setPlayCount((long) dir.getPlayCount()); if (dir.isAlbum()) { directory.setAverageRating(ratingService.getAverageRating(dir)); @@ -691,7 +698,7 @@ public class RESTController { List musicFolders = settingsService.getMusicFoldersForUser(username); SearchResult result = searchService.search(criteria, musicFolders, SearchService.IndexType.SONG); - org.libresonic.restapi.SearchResult searchResult = new org.libresonic.restapi.SearchResult(); + org.subsonic.restapi.SearchResult searchResult = new org.subsonic.restapi.SearchResult(); searchResult.setOffset(result.getOffset()); searchResult.setTotalHits(result.getTotalHits()); @@ -799,7 +806,7 @@ public class RESTController { Playlists result = new Playlists(); for (Playlist playlist : playlistService.getReadablePlaylistsForUser(requestedUsername)) { - result.getPlaylist().add(createJaxbPlaylist(new org.libresonic.restapi.Playlist(), playlist)); + result.getPlaylist().add(createJaxbPlaylist(new org.subsonic.restapi.Playlist(), playlist)); } Response res = createResponse(); @@ -1246,6 +1253,7 @@ public class RESTController { child.setStarred(jaxbWriter.convertDate(mediaFileDao.getMediaFileStarredDate(mediaFile.getId(), username))); child.setUserRating(ratingService.getRatingForUser(username, mediaFile)); child.setAverageRating(ratingService.getAverageRating(mediaFile)); + child.setPlayCount((long) mediaFile.getPlayCount()); if (mediaFile.isFile()) { child.setDuration(mediaFile.getDurationSeconds()); @@ -1544,7 +1552,7 @@ public class RESTController { for (PodcastChannel channel : podcastService.getAllChannels()) { if (channelId == null || channelId.equals(channel.getId())) { - org.libresonic.restapi.PodcastChannel c = new org.libresonic.restapi.PodcastChannel(); + org.subsonic.restapi.PodcastChannel c = new org.subsonic.restapi.PodcastChannel(); result.getChannel().add(c); c.setId(String.valueOf(channel.getId())); @@ -1587,13 +1595,13 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - private org.libresonic.restapi.PodcastEpisode createJaxbPodcastEpisode(Player player, String username, PodcastEpisode episode) { - org.libresonic.restapi.PodcastEpisode e = new org.libresonic.restapi.PodcastEpisode(); + private org.subsonic.restapi.PodcastEpisode createJaxbPodcastEpisode(Player player, String username, PodcastEpisode episode) { + org.subsonic.restapi.PodcastEpisode e = new org.subsonic.restapi.PodcastEpisode(); String path = episode.getPath(); if (path != null) { MediaFile mediaFile = mediaFileService.getMediaFile(path); - e = createJaxbChild(new org.libresonic.restapi.PodcastEpisode(), player, mediaFile, username); + e = createJaxbChild(new org.subsonic.restapi.PodcastEpisode(), player, mediaFile, username); e.setStreamId(String.valueOf(mediaFile.getId())); } @@ -1706,7 +1714,7 @@ public class RESTController { Bookmarks result = new Bookmarks(); for (Bookmark bookmark : bookmarkDao.getBookmarks(username)) { - org.libresonic.restapi.Bookmark b = new org.libresonic.restapi.Bookmark(); + org.subsonic.restapi.Bookmark b = new org.subsonic.restapi.Bookmark(); result.getBookmark().add(b); b.setPosition(bookmark.getPositionMillis()); b.setUsername(bookmark.getUsername()); @@ -1762,7 +1770,7 @@ public class RESTController { return; } - org.libresonic.restapi.PlayQueue restPlayQueue = new org.libresonic.restapi.PlayQueue(); + org.subsonic.restapi.PlayQueue restPlayQueue = new org.subsonic.restapi.PlayQueue(); restPlayQueue.setUsername(playQueue.getUsername()); restPlayQueue.setCurrent(playQueue.getCurrentMediaFileId()); restPlayQueue.setPosition(playQueue.getPositionMillis()); @@ -1811,7 +1819,7 @@ public class RESTController { Shares result = new Shares(); for (Share share : shareService.getSharesForUser(user)) { - org.libresonic.restapi.Share s = createJaxbShare(request, share); + org.subsonic.restapi.Share s = createJaxbShare(request, share); result.getShare().add(s); for (MediaFile mediaFile : shareService.getSharedFiles(share.getId(), musicFolders)) { @@ -1849,7 +1857,7 @@ public class RESTController { shareService.updateShare(share); Shares result = new Shares(); - org.libresonic.restapi.Share s = createJaxbShare(request, share); + org.subsonic.restapi.Share s = createJaxbShare(request, share); result.getShare().add(s); List musicFolders = settingsService.getMusicFoldersForUser(username); @@ -1909,8 +1917,8 @@ public class RESTController { writeEmptyResponse(request, response); } - private org.libresonic.restapi.Share createJaxbShare(HttpServletRequest request, Share share) { - org.libresonic.restapi.Share result = new org.libresonic.restapi.Share(); + private org.subsonic.restapi.Share createJaxbShare(HttpServletRequest request, Share share) { + org.subsonic.restapi.Share result = new org.subsonic.restapi.Share(); result.setId(String.valueOf(share.getId())); result.setUrl(shareService.getShareUrl(request, share)); result.setUsername(share.getUsername()); @@ -2035,10 +2043,10 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - private org.libresonic.restapi.User createJaxbUser(User user) { + private org.subsonic.restapi.User createJaxbUser(User user) { UserSettings userSettings = settingsService.getUserSettings(user.getUsername()); - org.libresonic.restapi.User result = new org.libresonic.restapi.User(); + org.subsonic.restapi.User result = new org.subsonic.restapi.User(); result.setUsername(user.getUsername()); result.setEmail(user.getEmail()); result.setScrobblingEnabled(userSettings.isLastFmEnabled()); @@ -2053,6 +2061,10 @@ public class RESTController { result.setStreamRole(user.isStreamRole()); result.setJukeboxRole(user.isJukeboxRole()); result.setShareRole(user.isShareRole()); + // currently this role isn't supported by libresonic + result.setVideoConversionRole(false); + // Useless + result.setAvatarLastChanged(null); TranscodeScheme transcodeScheme = userSettings.getTranscodeScheme(); if (transcodeScheme != null && transcodeScheme != TranscodeScheme.OFF) { @@ -2180,6 +2192,16 @@ public class RESTController { writeEmptyResponse(request, response); } + @RequestMapping(value = "/getChatMessages", method = {RequestMethod.GET, RequestMethod.POST}) + public ResponseEntity getChatMessages(HttpServletRequest request, HttpServletResponse response) { + return ResponseEntity.status(HttpStatus.SC_GONE).body(NO_LONGER_SUPPORTED); + } + + @RequestMapping(value = "/addChatMessage", method = {RequestMethod.GET, RequestMethod.POST}) + public ResponseEntity addChatMessage(HttpServletRequest request, HttpServletResponse response) { + return ResponseEntity.status(HttpStatus.SC_GONE).body(NO_LONGER_SUPPORTED); + } + @RequestMapping(value = "/getLyrics", method = {RequestMethod.GET, RequestMethod.POST}) public void getLyrics(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -2218,6 +2240,87 @@ public class RESTController { writeEmptyResponse(request, response); } + @RequestMapping(path = "/getAlbumInfo", method = RequestMethod.GET) + public void getAlbumInfo(HttpServletRequest request, HttpServletResponse response) throws Exception { + request = wrapRequest(request); + + int id = ServletRequestUtils.getRequiredIntParameter(request, "id"); + + MediaFile mediaFile = this.mediaFileService.getMediaFile(id); + if (mediaFile == null) { + error(request, response, RESTController.ErrorCode.NOT_FOUND, "Media file not found."); + return; + } + AlbumNotes albumNotes = this.lastFmService.getAlbumNotes(mediaFile); + + AlbumInfo result = getAlbumInfoInternal(albumNotes); + Response res = createResponse(); + res.setAlbumInfo(result); + this.jaxbWriter.writeResponse(request, response, res); + } + + @RequestMapping(path = "/getAlbumInfo2", method = RequestMethod.GET) + public void getAlbumInfo2(HttpServletRequest request, HttpServletResponse response) throws Exception { + request = wrapRequest(request); + + int id = ServletRequestUtils.getRequiredIntParameter(request, "id"); + + Album album = this.albumDao.getAlbum(id); + if (album == null) { + error(request, response, RESTController.ErrorCode.NOT_FOUND, "Album not found."); + return; + } + AlbumNotes albumNotes = this.lastFmService.getAlbumNotes(album); + + AlbumInfo result = getAlbumInfoInternal(albumNotes); + Response res = createResponse(); + res.setAlbumInfo(result); + this.jaxbWriter.writeResponse(request, response, res); + } + + private AlbumInfo getAlbumInfoInternal(AlbumNotes albumNotes) { + AlbumInfo result = new AlbumInfo(); + if (albumNotes != null) + { + result.setNotes(albumNotes.getNotes()); + result.setMusicBrainzId(albumNotes.getMusicBrainzId()); + result.setLastFmUrl(albumNotes.getLastFmUrl()); + result.setSmallImageUrl(albumNotes.getSmallImageUrl()); + result.setMediumImageUrl(albumNotes.getMediumImageUrl()); + result.setLargeImageUrl(albumNotes.getLargeImageUrl()); + } + return result; + } + + @RequestMapping(value = "/getVideoInfo", method = RequestMethod.GET) + public ResponseEntity getVideoInfo() throws Exception { + return ResponseEntity.status(HttpStatus.SC_NOT_IMPLEMENTED).body(NOT_YET_IMPLEMENTED); + } + + @RequestMapping(value = "/getCaptions", method = RequestMethod.GET) + public ResponseEntity getCaptions() { + return ResponseEntity.status(HttpStatus.SC_NOT_IMPLEMENTED).body(NOT_YET_IMPLEMENTED); + } + + @RequestMapping(value = "/startScan", method = {RequestMethod.PUT}) + public void startScan(HttpServletRequest request, HttpServletResponse response) { + request = wrapRequest(request); + mediaScannerService.scanLibrary(); + getScanStatus(request, response); + } + + @RequestMapping(value = "/getScanStatus", method = {RequestMethod.GET}) + public void getScanStatus(HttpServletRequest request, HttpServletResponse response) { + request = wrapRequest(request); + ScanStatus scanStatus = new ScanStatus(); + scanStatus.setScanning(this.mediaScannerService.isScanning()); + scanStatus.setCount((long) this.mediaScannerService.getScanCount()); + + Response res = createResponse(); + res.setScanStatus(scanStatus); + this.jaxbWriter.writeResponse(request, response, res); + } + private HttpServletRequest wrapRequest(HttpServletRequest request) { return wrapRequest(request, false); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/security/GlobalSecurityConfig.java b/libresonic-main/src/main/java/org/libresonic/player/security/GlobalSecurityConfig.java index 9302edcf..a296cf79 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/security/GlobalSecurityConfig.java +++ b/libresonic-main/src/main/java/org/libresonic/player/security/GlobalSecurityConfig.java @@ -133,7 +133,7 @@ public class GlobalSecurityConfig extends GlobalAuthenticationConfigurerAdapter "/playerSettings*", "/shareSettings*", "/passwordSettings*") .hasRole("SETTINGS") .antMatchers("/generalSettings*", "/advancedSettings*", "/userSettings*", - "/musicFolderSettings*", "/databaseSettings*") + "/musicFolderSettings*", "/databaseSettings*", "/rest/startScan*") .hasRole("ADMIN") .antMatchers("/deletePlaylist*", "/savePlaylist*", "/db*") .hasRole("PLAYLIST") diff --git a/libresonic-rest-api/src/main/resources/libresonic-rest-api.xsd b/libresonic-rest-api/src/main/resources/libresonic-rest-api.xsd index 66467b67..44d51030 100644 --- a/libresonic-rest-api/src/main/resources/libresonic-rest-api.xsd +++ b/libresonic-rest-api/src/main/resources/libresonic-rest-api.xsd @@ -1,10 +1,10 @@ + version="1.15.0"> @@ -19,6 +19,7 @@ + @@ -30,6 +31,7 @@ + @@ -43,16 +45,17 @@ + + - @@ -155,6 +158,7 @@ + @@ -177,6 +181,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -187,6 +217,7 @@ + @@ -211,6 +242,7 @@ + @@ -336,6 +368,18 @@ + + + + + + + + + + + + @@ -477,6 +521,17 @@ + + + + + + + + + + + @@ -541,6 +596,11 @@ + + + + + @@ -566,6 +626,8 @@ + + @@ -573,4 +635,4 @@ - + \ No newline at end of file From d59ce1de129f79ba3aa661de2658ffc2904a1181 Mon Sep 17 00:00:00 2001 From: Andrew DeMaria Date: Fri, 16 Jun 2017 07:37:43 -0600 Subject: [PATCH 2/2] Cleanup GET/POST Signed-off-by: Andrew DeMaria --- .../player/controller/RESTController.java | 148 +++++++++--------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java index 0212c06d..e3c80b7e 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java @@ -75,7 +75,7 @@ import static org.springframework.web.bind.ServletRequestUtils.*; * @author Sindre Mehus */ @Controller -@RequestMapping("/rest") +@RequestMapping(value = "/rest", method = {RequestMethod.GET, RequestMethod.POST}) public class RESTController { private static final Logger LOG = LoggerFactory.getLogger(RESTController.class); @@ -159,7 +159,7 @@ public class RESTController { } } - @RequestMapping(value = "/ping", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/ping") public void ping(HttpServletRequest request, HttpServletResponse response) throws Exception { Response res = createResponse(); jaxbWriter.writeResponse(request, response, res); @@ -173,7 +173,7 @@ public class RESTController { * @param response * @throws Exception */ - @RequestMapping(value = "/getLicense", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getLicense") public void getLicense(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); License license = new License(); @@ -191,7 +191,7 @@ public class RESTController { } - @RequestMapping(value = "/getMusicFolders", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getMusicFolders") public void getMusicFolders(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -208,7 +208,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getIndexes", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getIndexes") public void getIndexes(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Response res = createResponse(); @@ -278,7 +278,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getGenres", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getGenres") public void getGenres(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.subsonic.restapi.Genres genres = new org.subsonic.restapi.Genres(); @@ -295,7 +295,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getSongsByGenre", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getSongsByGenre") public void getSongsByGenre(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -318,7 +318,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getArtists", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getArtists") public void getArtists(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -343,7 +343,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getSimilarSongs", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getSimilarSongs") public void getSimilarSongs(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -370,7 +370,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getSimilarSongs2", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getSimilarSongs2") public void getSimilarSongs2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -398,7 +398,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getTopSongs", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getTopSongs") public void getTopSongs(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -420,7 +420,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getArtistInfo", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getArtistInfo") public void getArtistInfo(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -456,7 +456,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getArtistInfo2", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getArtistInfo2") public void getArtistInfo2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -513,7 +513,7 @@ public class RESTController { return result; } - @RequestMapping(value = "/getArtist", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getArtist") public void getArtist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -576,7 +576,7 @@ public class RESTController { return jaxbPlaylist; } - @RequestMapping(value = "/getAlbum", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getAlbum") public void getAlbum(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -599,7 +599,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getSong", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getSong") public void getSong(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -621,7 +621,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getMusicDirectory", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getMusicDirectory") public void getMusicDirectory(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -666,7 +666,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/search", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/search") public void search(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -710,7 +710,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/search2", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/search2") public void search2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -749,7 +749,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/search3", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/search3") public void search3(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -788,7 +788,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getPlaylists", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getPlaylists") public void getPlaylists(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -814,7 +814,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getPlaylist", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getPlaylist") public void getPlaylist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -843,7 +843,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/jukeboxControl", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/jukeboxControl") public void jukeboxControl(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request, true); @@ -922,7 +922,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/createPlaylist", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/createPlaylist") public void createPlaylist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request, true); String username = securityService.getCurrentUsername(request); @@ -967,7 +967,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/updatePlaylist", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/updatePlaylist") public void updatePlaylist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request, true); String username = securityService.getCurrentUsername(request); @@ -1035,7 +1035,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/deletePlaylist", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/deletePlaylist") public void deletePlaylist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request, true); String username = securityService.getCurrentUsername(request); @@ -1055,7 +1055,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/getAlbumList", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getAlbumList") public void getAlbumList(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1106,7 +1106,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getAlbumList2", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getAlbumList2") public void getAlbumList2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -1150,7 +1150,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getRandomSongs", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getRandomSongs") public void getRandomSongs(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1174,7 +1174,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getVideos", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getVideos") public void getVideos(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1193,7 +1193,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getNowPlaying", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getNowPlaying") public void getNowPlaying(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); NowPlaying result = new NowPlaying(); @@ -1347,7 +1347,7 @@ public class RESTController { return null; } - @RequestMapping(value = "/download", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/download") public ModelAndView download(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1371,7 +1371,7 @@ public class RESTController { return downloadController.handleRequest(request, response); } - @RequestMapping(value = "/stream", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/stream") public ModelAndView stream(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1384,7 +1384,7 @@ public class RESTController { return null; } - @RequestMapping(value = "/hls", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/hls") public ModelAndView hls(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1406,7 +1406,7 @@ public class RESTController { return null; } - @RequestMapping(value = "/scrobble", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/scrobble") public void scrobble(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -1439,12 +1439,12 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/star", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/star") public void star(HttpServletRequest request, HttpServletResponse response) throws Exception { starOrUnstar(request, response, true); } - @RequestMapping(value = "/unstar", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/unstar") public void unstar(HttpServletRequest request, HttpServletResponse response) throws Exception { starOrUnstar(request, response, false); } @@ -1493,7 +1493,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/getStarred", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getStarred") public void getStarred(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1516,7 +1516,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getStarred2", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getStarred2") public void getStarred2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1539,7 +1539,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getPodcasts", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getPodcasts") public void getPodcasts(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1577,7 +1577,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getNewestPodcasts", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getNewestPodcasts") public void getNewestPodcasts(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1614,7 +1614,7 @@ public class RESTController { return e; } - @RequestMapping(value = "/refreshPodcasts", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/refreshPodcasts") public void refreshPodcasts(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1626,7 +1626,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/createPodcastChannel", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/createPodcastChannel") public void createPodcastChannel(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1640,7 +1640,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/deletePodcastChannel", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/deletePodcastChannel") public void deletePodcastChannel(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1654,7 +1654,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/deletePodcastEpisode", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/deletePodcastEpisode") public void deletePodcastEpisode(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1668,7 +1668,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/downloadPodcastEpisode", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/downloadPodcastEpisode") public void downloadPodcastEpisode(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1688,7 +1688,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/getInternetRadioStations", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getInternetRadioStations") public void getInternetRadioStations(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -1706,7 +1706,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getBookmarks", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getBookmarks") public void getBookmarks(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1731,7 +1731,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/createBookmark", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/createBookmark") public void createBookmark(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1746,7 +1746,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/deleteBookmark", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/deleteBookmark") public void deleteBookmark(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -1758,7 +1758,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/getPlayQueue", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getPlayQueue") public void getPlayQueue(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1789,7 +1789,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/savePlayQueue", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/savePlayQueue") public void savePlayQueue(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1809,7 +1809,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/getShares", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getShares") public void getShares(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1831,7 +1831,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/createShare", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/createShare") public void createShare(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Player player = playerService.getPlayer(request, response); @@ -1871,7 +1871,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/deleteShare", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/deleteShare") public void deleteShare(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1891,7 +1891,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/updateShare", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/updateShare") public void updateShare(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -1964,19 +1964,19 @@ public class RESTController { return result; } - @RequestMapping(value = "/getCoverArt", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getCoverArt") public ModelAndView getCoverArt(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); return coverArtController.handleRequest(request, response); } - @RequestMapping(value = "/getAvatar", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getAvatar") public ModelAndView getAvatar(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); return avatarController.handleRequest(request, response); } - @RequestMapping(value = "/changePassword", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/changePassword") public void changePassword(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -2000,7 +2000,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/getUser", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getUser") public void getUser(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -2023,7 +2023,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/getUsers", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getUsers") public void getUsers(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -2078,7 +2078,7 @@ public class RESTController { return result; } - @RequestMapping(value = "/createUser", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/createUser") public void createUser(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -2114,7 +2114,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/updateUser", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/updateUser") public void updateUser(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -2172,7 +2172,7 @@ public class RESTController { return request.getParameter(name) != null; } - @RequestMapping(value = "/deleteUser", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/deleteUser") public void deleteUser(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); User user = securityService.getCurrentUser(request); @@ -2192,17 +2192,17 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(value = "/getChatMessages", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getChatMessages") public ResponseEntity getChatMessages(HttpServletRequest request, HttpServletResponse response) { return ResponseEntity.status(HttpStatus.SC_GONE).body(NO_LONGER_SUPPORTED); } - @RequestMapping(value = "/addChatMessage", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/addChatMessage") public ResponseEntity addChatMessage(HttpServletRequest request, HttpServletResponse response) { return ResponseEntity.status(HttpStatus.SC_GONE).body(NO_LONGER_SUPPORTED); } - @RequestMapping(value = "/getLyrics", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/getLyrics") public void getLyrics(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String artist = request.getParameter("artist"); @@ -2219,7 +2219,7 @@ public class RESTController { jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(value = "/setRating", method = {RequestMethod.GET, RequestMethod.POST}) + @RequestMapping(value = "/setRating") public void setRating(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Integer rating = getRequiredIntParameter(request, "rating"); @@ -2240,7 +2240,7 @@ public class RESTController { writeEmptyResponse(request, response); } - @RequestMapping(path = "/getAlbumInfo", method = RequestMethod.GET) + @RequestMapping(path = "/getAlbumInfo") public void getAlbumInfo(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -2259,7 +2259,7 @@ public class RESTController { this.jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(path = "/getAlbumInfo2", method = RequestMethod.GET) + @RequestMapping(path = "/getAlbumInfo2") public void getAlbumInfo2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -2292,24 +2292,24 @@ public class RESTController { return result; } - @RequestMapping(value = "/getVideoInfo", method = RequestMethod.GET) + @RequestMapping(value = "/getVideoInfo") public ResponseEntity getVideoInfo() throws Exception { return ResponseEntity.status(HttpStatus.SC_NOT_IMPLEMENTED).body(NOT_YET_IMPLEMENTED); } - @RequestMapping(value = "/getCaptions", method = RequestMethod.GET) + @RequestMapping(value = "/getCaptions") public ResponseEntity getCaptions() { return ResponseEntity.status(HttpStatus.SC_NOT_IMPLEMENTED).body(NOT_YET_IMPLEMENTED); } - @RequestMapping(value = "/startScan", method = {RequestMethod.PUT}) + @RequestMapping(value = "/startScan") public void startScan(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); mediaScannerService.scanLibrary(); getScanStatus(request, response); } - @RequestMapping(value = "/getScanStatus", method = {RequestMethod.GET}) + @RequestMapping(value = "/getScanStatus") public void getScanStatus(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); ScanStatus scanStatus = new ScanStatus();