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.MediaType;
import javax.ws.rs.core.Response;
@Component
@Path("rooms")
public class SettingsRest {
RoomManager rm = RoomManager.getInstance();
//------------------------------------------------------------------------------------
//GET:設定情報の入手
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/{rid}/settings")
public Object GetSettings(@PathParam("rid") String rid) {
Room r = rm.getRoom(rid);
//部屋が存在しないとき
var response = Response.status(Response.Status.NO_CONTENT);
if(r == null) {
response.status(404).entity("部屋が存在しません");
throw new WebApplicationException(response.build());
}
else return
"drawingTime:" + r.isDrawingTimer()+ ",\n" +
"drawingTimerTimes:" + r.getDrawingTimerTimes() + ",\n" +
"gameTimer:" + r.isGameTimer() +",\n" +
"gameTimerTimes:" + r.getGameTimerTimes() + ",\n" +
"gameTimerInitializeTimes:" + r.getGameTimerFirstThinkingTimes();
}
//----------------------------------------------------------------------------------------------------
//PUT:設定値の変更
@PUT
@Path("/{rid}/settings")
public void PutSettings(@PathParam("rid") String rid,
@FormParam("drawingTimer") boolean dTimer,
@FormParam("drawingTimerTimes") int dTimerTimes,
@FormParam("gameTimer") boolean gTimer,
@FormParam("gameTimerTimes") int gTimerTimes,
@FormParam("gameTimerFirstThinkingTimes") int gTimerFTTimes) {
Room r = rm.getRoom(rid);
//部屋がある時、値を変更
if(r != null) {
r.setDrawingTimer(dTimer);
r.setDrawingTimerTimes(dTimerTimes);
r.setGameTimer(gTimer);
r.setGameTimerTimes(gTimerTimes);
r.setGameTimerFirstThinkingTimes(gTimerFTTimes);
}else{
//部屋がなければエラー
var response = Response.status(Response.Status.NO_CONTENT);
response.status(404).entity("部屋が存在しません");
throw new WebApplicationException(response.build());
}
}
}