package com.example.citrusclient.rest; import com.example.citrusclient.models.Schedule; import java.util.HashMap; import retrofit2.Call; import retrofit2.http.DELETE; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.POST; import retrofit2.http.PUT; import retrofit2.http.Path; import retrofit2.http.Query; public interface ScheduleRest { String BASE_URL = "accounts/{account_id}/schedule"; @GET(BASE_URL) Call<HashMap<Integer, //年 HashMap<Integer, //月 HashMap<Integer, //日 HashMap<Integer, //Id Schedule>>>>> getAllSchedules( @Path("account_id") String accountId, @Query("token") String token ); @GET(BASE_URL + "/{year}") Call<HashMap<Integer, //月 HashMap<Integer, //日 HashMap<Integer, //Id Schedule>>>> getSchedulesByYear( @Path("account_id") String accountId, @Path("year") int year, @Query("token") String token ); @GET(BASE_URL + "/{year}/{month}") Call<HashMap<Integer, //日 HashMap<Integer, //Id Schedule>>> getSchedulesByMonth( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Query("token") String token ); @GET(BASE_URL + "/{year}/{month}/{day}") Call<HashMap<Integer, //Id Schedule>> getSchedulesByDay( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Path("day") int day, @Query("token") String token ); @GET(BASE_URL + "/{year}/{month}/{day}") Call<HashMap<Integer, //Id Schedule>> getSchedulesByDayAndBook( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Path("day") int day, @Query("book_id") int bookId, @Query("token") String token ); @GET(BASE_URL + "/{year}/{month}") Call<HashMap<Integer, //日 HashMap<Integer, //Id Schedule>>> getScheduleByMonthAndBookId( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Query("book_id") int bookId, @Query("token") String token ); @GET(BASE_URL + "/{year}/{month}/{day}/{schedule_id}") Call<Schedule> getScheduleById( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Path("day") int day, @Path("schedule_id") int id, @Query("token") String token ); @FormUrlEncoded @POST(BASE_URL + "/{year}/{month}/{day}") Call<Schedule> createSchedule( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Path("day") int day, @Field("title") String title, @Field("start_time") String startTime, @Field("end_time") String endTime, @Field("book_id") int bookId, @Field("token") String token ); @DELETE(BASE_URL + "/{year}/{month}/{day}/{schedule_id}") Call<String> deleteScheduleById( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Path("day") int day, @Path("schedule_id") int scheduleId, @Query("token") String token ); @FormUrlEncoded @PUT(BASE_URL + "/{year}/{month}/{day}/{schedule_id}") Call<String> putStartTime( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Path("day") int day, @Path("schedule_id") int scheduleId, @Field("token") String token, @Field("start_time") String startTime ); @FormUrlEncoded @PUT(BASE_URL + "/{year}/{month}/{day}/{schedule_id}") Call<String> putEndTime( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Path("day") int day, @Path("schedule_id") int scheduleId, @Field("token") String token, @Field("end_time") String endTime ); @FormUrlEncoded @PUT(BASE_URL + "/{year}/{month}/{day}/{schedule_id}") Call<String> putTitle( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Path("day") int day, @Path("schedule_id") int scheduleId, @Field("token") String token, @Field("title") String title ); @FormUrlEncoded @PUT(BASE_URL + "/{year}/{month}/{day}/{schedule_id}") Call<String> putBookId( @Path("account_id") String accountId, @Path("year") int year, @Path("month") int month, @Path("day") int day, @Path("schedule_id") int scheduleId, @Field("token") String token, @Field("book_id") int bookId ); }