package com.example.citrusclient.rest; import com.example.citrusclient.models.Todo; import java.util.ArrayList; import java.util.HashMap; import retrofit2.Call; import retrofit2.Response; 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 TodosRest { @GET("accounts/{account_id}/books/{book_id}/todos") Call<HashMap<Integer, HashMap<Integer, HashMap<Integer, HashMap<Integer, Todo>>>>> getAllTodos( @Path("account_id") String accountId, @Path("book_id") Integer bookId, @Query("token") String token ); @GET("accounts/{account_id}/books/{book_id}/todos/{year}/{month}") Call<HashMap<Integer, HashMap<Integer, Todo>>> getTodosByMonth( @Path("account_id") String accountId, @Path("book_id") Integer bookId, @Path("year") Integer year, @Path("month") Integer month, @Query("token") String token ); @GET("accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}") Call<HashMap<Integer, Todo>> getTodosByDay( @Path("account_id") String accountId, @Path("book_id") Integer bookId, @Path("year") Integer year, @Path("month") Integer month, @Path("day") Integer day, @Query("token") String token ); @GET("accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}/{todo_id}") Call<Todo> getTodoById( @Path("account_id") String accountId, @Path("book_id") Integer bookId, @Path("year") Integer year, @Path("month") Integer month, @Path("day") Integer day, @Path("todo_id") Integer todoId, @Query("token") String token ); @FormUrlEncoded @POST("accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}") Call<Todo> createTodo( @Path("account_id") String accountId, @Path("book_id") Integer bookId, @Path("year") Integer year, @Path("month") Integer month, @Path("day") Integer day, @Field("title") String title, @Field("token") String token ); @FormUrlEncoded @PUT("accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}/{todo_id}/check") Call<Void> setCheck( @Path("account_id") String accountId, @Path("book_id") Integer bookId, @Path("year") Integer year, @Path("month") Integer month, @Path("day") Integer day, @Path("todo_id") Integer todoId, @Field("check") boolean check, @Field("token") String token ); @FormUrlEncoded @PUT("accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}/{todo_id}") Call<Void> setTodo( @Path("account_id") String accountId, @Path("book_id") Integer bookId, @Path("year") Integer year, @Path("month") Integer month, @Path("day") Integer day, @Path("todo_id") Integer todoId, @Field("title") String title, @Field("new_year") Integer newYear, @Field("new_month") Integer newMonth, @Field("new_day") Integer newDay, @Field("token") String token ); @DELETE("accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}/{todo_id}") Call<Void> deleteTodoById( @Path("account_id") String accountId, @Path("book_id") Integer bookId, @Path("year") Integer year, @Path("month") Integer month, @Path("day") Integer day, @Path("todo_id") Integer todoId, @Query("token") String token ); }