package com.instructure.canvasapi.api;
import com.instructure.canvasapi.model.PollChoiceResponse;
import com.instructure.canvasapi.utilities.APIHelpers;
import com.instructure.canvasapi.utilities.CanvasCallback;
import retrofit.Callback;
import retrofit.client.Response;
import retrofit.http.Body;
import retrofit.http.DELETE;
import retrofit.http.GET;
import retrofit.http.POST;
import retrofit.http.PUT;
import retrofit.http.Path;
import retrofit.http.Query;
/**
*
* Copyright (c) 2014 Instructure. All rights reserved.
*/
public class PollChoiceAPI extends BuildInterfaceAPI {
interface PollChoiceInterface {
@GET("/polls/{pollid}/poll_choices")
void getFirstPagePollChoicesList(@Path("pollid") long poll_id, Callback<PollChoiceResponse> callback);
@GET("/{next}")
void getNextPagePollChoicesList(@Path(value = "next", encode = false) String nextURL, Callback<PollChoiceResponse> callback);
@GET("/polls/{pollid}/poll_choices/{poll_choice_id}")
void getSinglePollChoice(@Path("pollid") long poll_id, @Path("poll_choice_id") long poll_choice_id, Callback<PollChoiceResponse> callback);
@POST("/polls/{pollid}/poll_choices")
void createPollChoice(@Path("pollid") long poll_id, @Query("poll_choices[][text]") String pollChoiceText, @Query("poll_choices[][is_correct]") boolean isCorrect, @Query("poll_choices[][position]") int position, @Body String body, Callback<PollChoiceResponse> callback);
@PUT("/polls/{pollid}/poll_choices/{poll_choice_id}")
void updatePollChoice(@Path("pollid") long poll_id, @Path("poll_choice_id") long poll_choice_id, @Query("poll_choices[][text]") String pollChoiceText, @Query("poll_choices[][is_correct]") boolean isCorrect, @Query("poll_choices[][position]") int position, @Body String body, Callback<PollChoiceResponse> callback);
@DELETE("/polls/{pollid}/poll_choices/{poll_choice_id}")
void deletePollChoice(@Path("pollid") long poll_id, @Path("poll_choice_id") long poll_choice_id, Callback<Response> callback);
}
/////////////////////////////////////////////////////////////////////////
// API Calls
/////////////////////////////////////////////////////////////////////////
public static void getFirstPagePollChoices(long poll_id, CanvasCallback<PollChoiceResponse> callback) {
if (APIHelpers.paramIsNull(callback)) { return; }
buildCacheInterface(PollChoiceInterface.class, callback).getFirstPagePollChoicesList(poll_id, callback);
buildInterface(PollChoiceInterface.class, callback).getFirstPagePollChoicesList(poll_id, callback);
}
public static void getNextPagePollChoices(String nextURL, CanvasCallback<PollChoiceResponse> callback){
if (APIHelpers.paramIsNull(callback, nextURL)) { return; }
callback.setIsNextPage(true);
buildCacheInterface(PollChoiceInterface.class, callback, false).getNextPagePollChoicesList(nextURL, callback);
buildInterface(PollChoiceInterface.class, callback, false).getNextPagePollChoicesList(nextURL, callback);
}
public static void getSinglePollChoice(long poll_id, long poll_choice_id, CanvasCallback<PollChoiceResponse> callback) {
if (APIHelpers.paramIsNull(callback, poll_id, poll_choice_id)) { return; }
buildCacheInterface(PollChoiceInterface.class, callback).getSinglePollChoice(poll_id, poll_choice_id, callback);
buildInterface(PollChoiceInterface.class, callback).getSinglePollChoice(poll_id, poll_choice_id, callback);
}
public static void createPollChoice(long poll_id, String text, boolean is_correct, int position, CanvasCallback<PollChoiceResponse> callback) {
if (APIHelpers.paramIsNull(callback, poll_id, text, is_correct)) { return; }
buildInterface(PollChoiceInterface.class, callback).createPollChoice(poll_id, text, is_correct, position, "", callback);
}
public static void updatePollChoice(long poll_id, long poll_choice_id, String text, boolean is_correct, int position, CanvasCallback<PollChoiceResponse> callback) {
if (APIHelpers.paramIsNull(callback, poll_id, poll_choice_id, text, is_correct)) { return; }
buildInterface(PollChoiceInterface.class, callback).updatePollChoice(poll_id, poll_choice_id, text, is_correct, position, "", callback);
}
public static void deletePollChoice(long poll_id, long poll_choice_id, CanvasCallback<Response> callback) {
if (APIHelpers.paramIsNull(callback, poll_id, poll_choice_id)) { return; }
buildInterface(PollChoiceInterface.class, callback).deletePollChoice(poll_id, poll_choice_id, callback);
}
}