diff --git a/src/main/java/com/ntlab/irisserver/resources/RoomsRest.java b/src/main/java/com/ntlab/irisserver/resources/RoomsRest.java index 6f426a7..97995b6 100644 --- a/src/main/java/com/ntlab/irisserver/resources/RoomsRest.java +++ b/src/main/java/com/ntlab/irisserver/resources/RoomsRest.java @@ -5,29 +5,59 @@ import javax.ws.rs.*; import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.List; @Component @Path("/rooms") -@Produces(MediaType.APPLICATION_JSON) + public class RoomsRest { - @POST + @GET //テスト用(すべての部屋の情報を表示) @Path("/") - public Room makeRooms(@FormParam("nickname") String ownername){ + @Produces(MediaType.APPLICATION_JSON) + public List getRoomsInfo(){ RoomManager rm = RoomManager.getInstance(); - Room room = rm.createRoom(ownername); + rm.getRooms(); + List rms = rm.getRooms(); + + return rms; + } + + @POST //部屋の作成,オーナーを設定 + @Path("/") + @Produces(MediaType.APPLICATION_JSON) + public Room makeRooms(@FormParam("nickname") String owner){ + RoomManager rm = RoomManager.getInstance(); + Room room = rm.createRoom(owner); + room.addMember(owner); + return room; } - @GET + @GET//部屋の情報を表示 @Path("/{rid}") + @Produces(MediaType.APPLICATION_JSON) public Room getRoomMember(@PathParam("rid") String rid){ RoomManager rm = RoomManager.getInstance(); Room room = rm.getRoom(rid); + if(room == null){ + //部屋がなければエラー + var response = Response.status(Response.Status.NO_CONTENT); + response.status(404).entity("部屋が存在しません"); + throw new WebApplicationException(response.build()); + } + return room; } + @DELETE//部屋の削除 + @Path("/{rid}") + public void deleteRooms(@PathParam("rid") String rid){ + RoomManager rm = RoomManager.getInstance(); + rm.deleteRoom(rid); + } }