diff --git a/src/main/java/com/ntlab/irisserver/entities/Room.java b/src/main/java/com/ntlab/irisserver/entities/Room.java index 2e891d7..fc9d96a 100644 --- a/src/main/java/com/ntlab/irisserver/entities/Room.java +++ b/src/main/java/com/ntlab/irisserver/entities/Room.java @@ -17,13 +17,15 @@ public String ownerName; //String ownerName = null; + @JsonProperty("members") + Map members= new HashMap<>(); + + @JsonProperty("settings") + Settings settings = new Settings(); private Member redMaster; private Member blueMaster; - Map members= new HashMap<>(); - Map drawings = new HashMap<>(); - Settings settings = new Settings(); public Room(String rid, String owner) { @@ -42,13 +44,6 @@ } - public List getDrawings() { - - List drawingslist = new ArrayList(drawings.values()) ; - return drawingslist; - - } - //プレイヤーの情報を変更する public void changeTeamAndMaster(String nick, String belongs, boolean isMaster) { @@ -134,13 +129,4 @@ return 0; } - - public Drawing getDrawing(int dno) { - return drawings.get(dno); - } - - public void putDrawing(int dno, Drawing d) { - drawings.put(dno, d); - } - } diff --git a/src/main/java/com/ntlab/irisserver/models/KeywordManager.java b/src/main/java/com/ntlab/irisserver/models/KeywordManager.java new file mode 100644 index 0000000..9b44c4e --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/models/KeywordManager.java @@ -0,0 +1,22 @@ +package com.ntlab.irisserver.models; + +import org.springframework.stereotype.Component; + +@Component +public class KeywordManager { + private static KeywordManager theInstance = null; + String[] keywords = {"りんご", + "ごりら","らっぱ","ぱんつ","つみき"}; + + + public static KeywordManager getInstance() { + if(theInstance == null) { + theInstance = new KeywordManager(); + } + return theInstance; + } + + public String[] getKeywords(){ + return keywords; + } +} diff --git a/src/main/java/com/ntlab/irisserver/resources/KeywordsRest.java b/src/main/java/com/ntlab/irisserver/resources/KeywordsRest.java new file mode 100644 index 0000000..3bdc387 --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/resources/KeywordsRest.java @@ -0,0 +1,27 @@ +package com.ntlab.irisserver.resources; + +import org.springframework.stereotype.Component; +import com.ntlab.irisserver.models.KeywordManager; + + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + + +@Component +@Path("/keywords") + +public class KeywordsRest { + + @GET + @Produces(MediaType.APPLICATION_JSON) + public String[] getKeywords(){ + KeywordManager km = KeywordManager.getInstance(); + String[] keywords = km.getKeywords(); + + return keywords; + } + + +} diff --git a/src/main/java/com/ntlab/irisserver/resources/SettingsRest.java b/src/main/java/com/ntlab/irisserver/resources/SettingsRest.java index 1b82722..622a98b 100644 --- a/src/main/java/com/ntlab/irisserver/resources/SettingsRest.java +++ b/src/main/java/com/ntlab/irisserver/resources/SettingsRest.java @@ -25,9 +25,8 @@ Room r = rm.getRoom(rid); //部屋がある時、JsonでSettingsの情報を返す - if(r != null) { - Settings settings = r.getSettings(); - return settings; + if (r != null) { + return r.getSettings(); } else { //部屋がなければエラー @@ -69,5 +68,4 @@ throw new WebApplicationException(response.build()); } } - } diff --git a/src/main/java/com/ntlab/irisserver/resources/StateRest.java b/src/main/java/com/ntlab/irisserver/resources/StateRest.java new file mode 100644 index 0000000..fabad30 --- /dev/null +++ b/src/main/java/com/ntlab/irisserver/resources/StateRest.java @@ -0,0 +1,50 @@ +package com.ntlab.irisserver.resources; + +import org.springframework.stereotype.Component; +import com.ntlab.irisserver.entities.Room; +import com.ntlab.irisserver.models.RoomManager; + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + + +@Component +@Path("/rooms") + +public class StateRest { + + @GET//部屋の情報を入手 + + @Path("/{rid}/state") + + public int getState(@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.state; //部屋の情報を送る + } +//---------------------------------------------------------------------------------------------------------------------------------- + @PUT//部屋の情報を変更する + + @Path("/{rid}/state") + + //rid,nickname,stateを引数として持ってくる + public void putState(@PathParam("rid") String rid,@FormParam("nickname") String nickname,@FormParam("state") Integer state) { + + RoomManager rm = RoomManager.getInstance(); + Room room = rm.getRoom(rid); + + if(nickname.equals(room.ownerName)){ //nicknameがownerだった場合 + room.state = state; //部屋の情報を変更 + } + } + + +} \ No newline at end of file