package org.ntlab.SproutServer.battles;
import net.arnx.jsonic.JSON;
import org.ntlab.SproutServer.accounts.Accounts;
import org.ntlab.SproutServer.rooms.Rooms;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.HashMap;
/**
* http://nitta-lab-www2.is.konan-u.ac.jp/battles
* 上記URIへの各種リクエストを処理するクラス
*
* @author matsumoto_k
*/
@Path("battles")
public class BattlesRest {
public BattlesRest(){
}
@Path("/test")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hoge() {
return "deploy jenkins from tomcat";
}
/**
* バトル一覧取得API
* @return バトル一覧
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
public HashMap<Integer,Battle> getBattle(){
return Battles.getInstance().getBattleMap();
}
/**
* 指定したbattleIdのバトルを取得する
* @param battleId
* @return
*/
@Path("/{battleId}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Battle getBattle(@PathParam("battleId") int battleId) {
return Battles.getInstance().getBattleMap().get(battleId);
}
/**
* 指定したパラメータのバトルを更新する
* @param battleId
* @param roomId
* @param userId
* @param stringPlayerData
* @return
*/
@Path("/{battleId}")
@PUT
public Battle putBattle(@PathParam("battleId") int battleId, @FormParam("roomId") int roomId,
@FormParam("userId") int userId, @FormParam("playerData") String stringPlayerData) {
PlayerData playerData = JSON.decode(stringPlayerData, PlayerData.class);
Battles.getInstance().updatePlayer(battleId, roomId, userId, playerData);
return Battles.getInstance().findBattleById(battleId);
}
/**
* ダミーデータの作成
*/
@Path("/develop")
@GET
public void createDummyBattle() {
Accounts accounts = Accounts.getInstance();
if (!accounts.checkCreatedUser(1000)) {
for (int i = 1000; i < 1008; i++) {
accounts.createAccount(i);
}
}
Rooms rooms = Rooms.getInstance();
rooms.makeRoomBattle(1000, 1000, "room1", "hoge");
rooms.makeRoomBattle(1001, 1004, "room2", "hoge");
int battleId = 1000;
Battles.getInstance().createDummyBattle(battleId, rooms.getRoomList().get(1000), rooms.getRoomList().get(1001));
}
}