package com.example.citrusclient.rest;
import com.example.citrusclient.models.Book;
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 BooksRest {
//本の一覧を返す
@GET("accounts/{account_id}/books")
Call<Book> getBooks(
@Path("account_id") String account_id,
@Query("token") String token
);
//本の新規作成
@FormUrlEncoded
@POST("accounts/{account_id}/books")
Call<Book> createBook(
@Path("account_id") String account_id,
@Field("title") String title,
@Field("color") String color,
@Field("publicity") boolean publicity,
@Field("token") String token
);
//本の情報を取得
@GET("accounts/{account_id}/books/{book_id}")
Call<Book> getBook(
@Path("account_id") String account_id,
@Path("book_id") Integer book_id,
@Query("token") String token
);
//本の削除
@DELETE("accounts/{account_id}/books/{book_id}")
Call<String> deleteBook(
@Path("account_id") String account_id,
@Path("book_id") Integer book_id,
@Query("token") String token
);
//本のタイトルを返す(指定したbook_idの本のタイトルを返す)
@GET("accounts/{account_id}/books/{book_id}/title")
Call<String> getTitle(
@Path("account_id") String account_id,
@Path("book_id") Integer book_id,
@Query("token") String token
);
//本のタイトルを変更(指定したbook_idの本のタイトルを変更する)
@PUT("accounts/{account_id}/books/{book_id}/title")
Call<String> putTitle(
@Path("account_id") String account_id,
@Path("book_id") Integer book_id,
@Field("title") String title,
@Field("token") String token
);
//本の公開情報を返す(指定したbook_idの本の公開状態を返す)
@GET("accounts/{account_id}/books/{book_id}/public")
Call<Boolean> getPublicity(
@Path("account_id") String account_id,
@Path("book_id") Integer book_id,
@Query("token") String token
);
//公開状態を変更する(指定された本の公開状態を変更する)
@PUT("accounts/{account_id}/books/{book_id}/public")
Call<String> putPublicity(
@Path("account_id") String account_id,
@Path("book_id") Integer book_id,
@Field("publicity") Boolean publicity,
@Field("token") String token
);
//本の色を変更する(book_idを指定して本の色を変更する)
@PUT("accounts/{account_id}/books/{book_id}/color")
Call<String> putColor(
@Path("account_id") String account_id,
@Path("book_id") Integer book_id,
@Field("color") String color,
@Field("token") String token
);
}