diff --git a/src/main/java/com/ntlab/irisserver/entities/Room.java b/src/main/java/com/ntlab/irisserver/entities/Room.java index bf3c71f..cb69384 100644 --- a/src/main/java/com/ntlab/irisserver/entities/Room.java +++ b/src/main/java/com/ntlab/irisserver/entities/Room.java @@ -40,6 +40,10 @@ ownerName=owner; } + public String getOwnerName() { + return ownerName; + } + public Settings getSettings() { return settings; } diff --git a/src/main/java/com/ntlab/irisserver/resources/MembersRest.java b/src/main/java/com/ntlab/irisserver/resources/MembersRest.java index 1239ede..95d7e3c 100644 --- a/src/main/java/com/ntlab/irisserver/resources/MembersRest.java +++ b/src/main/java/com/ntlab/irisserver/resources/MembersRest.java @@ -35,6 +35,8 @@ //Listの0番目と1番目をチームマスターにする if(i==0 || i==1){ info.setMaster(true); + }else{ + info.setMaster(false); } //Listの偶数番目を"r"(赤)に、奇数番目を"b"(青)にする @@ -56,12 +58,12 @@ List gm = room.getMembers(); //引数で取ってきたnicknameがownerかどうか確認 -/* - if(nickname != room.ownerName) { + + if(nickname != room.getOwnerName()) { var response = Response.status(401).entity("あなたはオーナーではありません"); throw new WebApplicationException(response.build()); } -*/ + //全員の役職を変更 membershuffle(gm); @@ -72,22 +74,16 @@ //自分のnicknameを送り、Roomに追加 @POST @Path("/{rid}/members") - public void postMembers(@PathParam("rid") String rid, @FormParam("nickname") String nickname) { + @Produces(MediaType.APPLICATION_JSON) + public Room postMembers(@PathParam("rid") String rid, @FormParam("nickname") String nickname) { RoomManager rm = RoomManager.getInstance(); Room room = rm.getRoom(rid); - List m = room.getMembers(); //引数で取ってきたnicknameがListに存在しているか確認 -/* - for(int i=0; i<10; i++){ - Member info = m.get(i); - if(info.getNickname() == nickname) { - var response = Response.status(401).entity("入力したnicknameは既に存在しています"); - throw new WebApplicationException(response.build()); - } - } -*/ - room.addMember(nickname); + if(room.getMember(nickname)==null)room.addMember(nickname); + + return room; + } 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); + } }