package com.ntlab.irisserver.resources; import com.ntlab.irisserver.entities.Room; import com.ntlab.irisserver.models.RoomManager; import org.springframework.stereotype.Component; import javax.ws.rs.*; import javax.ws.rs.core.Response; @Component @Path("/rooms") public class MemberRest { // チーム変更・役職変更のメソッド @Path("/{rid}/members/{nickname}") @PUT public String putMember(@PathParam("rid") String rid, @PathParam("nickname") String nickname, @FormParam("belongs") String belongs, @FormParam("is-master") boolean isMaster) { RoomManager rm = RoomManager.getInstance(); Room room = rm.getRoom(rid); //部屋の確認 if (room != null) { //ニックネームの確認 if (room.getMember(nickname) != null) { room.changeTeamAndMaster(nickname, belongs, isMaster); } else { //ニックネームがなければエラー var response = Response.status(Response.Status.NO_CONTENT); response.status(404).entity("ニックネームが存在しません"); throw new WebApplicationException(response.build()); } } else { //部屋がなければエラー var response = Response.status(Response.Status.NO_CONTENT); response.status(404).entity("部屋が存在しません"); throw new WebApplicationException(response.build()); } return "変更しました"; } // プレイヤーを退出させるメソッド @Path("/{rid}/members/{nickname}") @DELETE public String deleteMember(@PathParam("rid") String rid, @PathParam("nickname") String nickname) { RoomManager rm = RoomManager.getInstance(); Room room = rm.getRoom(rid); if (room != null && room.getMember(nickname) != null) { room.deleteMember(nickname); } return "退出しました"; } }