/*
*Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
*WSO2 Inc. licenses this file to you under the Apache License,
*Version 2.0 (the "License"); you may not use this file except
*in compliance with the License.
*You may obtain a copy of the License at
*
*http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing,
*software distributed under the License is distributed on an
*"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
*KIND, either express or implied. See the License for the
*specific language governing permissions and limitations
*under the License.
*/
package org.wso2.esb.integration.services.jaxrs.musicsample;
import org.wso2.esb.integration.services.jaxrs.musicsample.bean.Music;
import org.wso2.esb.integration.services.jaxrs.musicsample.bean.Singer;
import javax.inject.Inject;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/music")
public class MusicRestService {
@Inject
private MusicService musicService;
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public Music getMusicInJSON(@QueryParam("album") final String albumName) {
/* Music music = new Music();
music.setAlbum("Beat It !!!");
music.setSinger("Micheal Jackson");*/
return musicService.getByAlbum(albumName);
//return musicService.musicCollection.get("Dimuthu");
}
@POST
@Path("/post")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response createMusicInJSONPOST(Music music /*@PathParam("album") String album, @PathParam("singer") String singer*/) {
musicService.setMusic(music);
String result = "Album Added in POST : " + music;
return Response.status(201).entity(result).build();
//return music.getAlbum();
}
@POST
@Path("/postjson")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response createMusicInJSONResponsePOST(Music music /*@PathParam("album") String album, @PathParam("singer") String singer*/) {
musicService.setMusic(music);
//String result = "Album Added in POST : " + music;
return Response.status(201).entity(music).build();
//return music.getAlbum();
}
@PUT
@Path("/put")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response updateMusicInJSONPUT(Music music) {
Music musicOne = musicService.getByAlbum(music.getAlbum());
musicOne.setSinger(music.getSinger());
String result = "Album updated form PUT request: " + musicOne;
return Response.status(201).entity(result).build();
//return music;
}
@POST
@Path("/add_singer_details")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response addSingerDetailsInJSONPOST(Singer singer) {
musicService.setSinger(singer);
String result = "Singer Added in POST : " + singer;
return Response.status(201).entity(result).build();
//return music.getAlbum();
}
@GET
@Path("/get_singer_details")
@Produces(MediaType.APPLICATION_JSON)
public Singer getSingerDetailsInJSON(@QueryParam("singer") final String singerName) {
/* Music music = new Music();
music.setAlbum("Beat It !!!");
music.setSinger("Micheal Jackson");*/
return musicService.getBySinger(singerName);
//return musicService.musicCollection.get("Dimuthu");
}
}