package org.ntlab.irisclient.resources; import org.ntlab.irisclient.entities.GameJson; import org.ntlab.irisclient.entities.TurnJson; import java.util.List; import okhttp3.ResponseBody; import retrofit2.Call; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.POST; import retrofit2.http.PUT; import retrofit2.http.Path; public interface GameRest { //----------------------------------------------- //Gameの開始に必要な情報を取得する。 @GET("rooms/{rid}/game") Call<GameJson> getGame( @Path("rid") String rid ); //----------------------------------------------- // 今回のゲームで使われる16個のお題をdno順のリストで取得するメソッド @GET("rooms/{rid}/game/keywords") Call<String[]> getkeywords( @Path("rid") String rid ); //----------------------------------------------- // カード(絵)の並び順のMapを取得するメソッド @GET("rooms/{rid}/game/map") Call<List<Integer>> getMap( @Path("rid") String rid ); //----------------------------------------------- // カードの色を取得するメソッド @GET("rooms/{rid}/game/color") Call<List<String>> getColorList( @Path("rid") String rid ); //----------------------------------------------- // 現在開いているすべてのカードを取得するメソッド true=開いている false=開いてない @GET("rooms/{rid}/game/opens") Call<List<Boolean>> getOpens( @Path("rid") String rid ); //----------------------------------------------- // 現在のターンがどちらのチームであるかを取得するメソッド @GET("rooms/{rid}/game/turn") Call<ResponseBody> getTeam( @Path("rid") String rid ); //----------------------------------------------- // 現在までのターン数を取得するメソッド @GET("rooms/{rid}/game/turns") Call<Integer> getTurnNumber( @Path("rid") String rid ); //----------------------------------------------- // hint,openlist,maxを取得するメソッド @GET("rooms/{rid}/game/turns/{tno}") Call<TurnJson> getTurns( @Path("rid") String rid, @Path("tno") int tno ); //----------------------------------------------- //{tno}//questionsのスラッシュがサーバー側で1個多かったため機能していなかった @GET("rooms/{rid}/game/turns/{tno}//questions") Call<List<Boolean>> getQ( @Path("rid") String rid, @Path("tno") Integer tno ); //----------------------------------------------- @GET("rooms/{rid}/game/turns/{tno}/hint") Call<ResponseBody> getHint( @Path("rid") String rid, @Path("tno") Integer tno ); //----------------------------------------------- @GET("rooms/{rid}/game/turns/{tno}/max") Call<Integer> getMax( @Path("rid") String rid, @Path("tno") Integer tno ); //----------------------------------------------- @GET("rooms/{rid}/game/turns/{tno}/turnstate") Call<Integer> getTurnState( @Path("rid") String rid, @Path("tno") Integer tno ); //----------------------------------------------- @GET("rooms/{rid}/game/turns/{tno}/Endstate") Call<Integer> getEndState( @Path("rid") String rid, @Path("tno") Integer tno ); //----------------------------------------------- // tnoに指定したターンに開けたカードのcnoを取得するメソッド @GET("rooms/{rid}/game/turns/{tno}/openlist") Call<List<Integer>> getOpenList( @Path("rid") String rid, @Path("tno") Integer tno ); //----------------------------------------------- // 現在のターンで開くカードのcnoを送信するメソッド @FormUrlEncoded @PUT("rooms/{rid}/game/turns/{tno}/openlist") Call<Void> setOpenList( @Path("rid") String rid, @Path("tno") int tno, @Field("cno") Integer cno ); //----------------------------------------------- // マスターのヒントを送信するメソッド + 最大回答数も送信 @FormUrlEncoded @PUT("rooms/{rid}/game/turns/{tno}/hint") Call<Void> putHint( @Path("rid") String rid, @Path("tno") int tno, @Field("hint") String hint, @Field("max") Integer max ); //----------------------------------------------- //Turnstateを1に変更 @PUT("/{rid}/game/turns/{tno}/turnstate") Call<Void> setTurnState( @Path("rid") String rid, @Path("tno") int tno ); //----------------------------------------------- //Endstateを1に変更 @PUT("/{rid}/game/turns/{tno}/endstate") Call<Void> setEndState( @Path("rid") String rid, @Path("tno") int tno ); //----------------------------------------------- /* // マスターのヒント(数字)を送信するメソッド (putHintにまとめられて不要になりました。 @FormUrlEncoded @PUT("rooms/{rid}/game/turns/{tno}/max") Call<Void> putMax( @Path("rid") String rid, @Path("tno") int tno, @Field("max") Integer max ); */ //----------------------------------------------- @FormUrlEncoded @POST("rooms/{rid}/game/turns/{tno}/questions") Call<Void> changeQ( @Path("rid") String rid, @Path("tno") int tno, @Field("cno") Integer cno ); //----------------------------------------------- @POST("rooms/{rid}/game/turns") Call<Void> addTurns( @Path("rid") String rid ); }