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_book_id") Integer newBookId,
@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
);
}