package com.instructure.canvasapi.api; import com.instructure.canvasapi.model.PollResponse; 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 PollAPI extends BuildInterfaceAPI { interface PollInterface { @GET("/polls") void getFirstPagePollsList(Callback<PollResponse> callback); @GET("/{next}") void getNextPagePollsList(@Path(value = "next", encode = false) String nextURL, Callback<PollResponse> callback); @GET("/polls/{pollid}") void getSinglePoll(@Path("pollid") long poll_id, Callback<PollResponse> callback); @POST("/polls") void createPoll(@Query("polls[][question]") String pollTitle, @Body String body, Callback<PollResponse> callback); @PUT("/polls/{pollid}") void updatePoll(@Path("pollid") long poll_id, @Query("polls[][question]") String pollTitle, @Body String body, Callback<PollResponse> callback); @DELETE("/polls/{pollid}") void deletePoll(@Path("pollid") long poll_id, Callback<Response> callback); } ///////////////////////////////////////////////////////////////////////// // API Calls ///////////////////////////////////////////////////////////////////////// public static void getFirstPagePoll(CanvasCallback<PollResponse> callback) { if (APIHelpers.paramIsNull(callback)) { return; } buildCacheInterface(PollInterface.class, callback).getFirstPagePollsList(callback); buildInterface(PollInterface.class, callback).getFirstPagePollsList(callback); } public static void getNextPagePoll(String nextURL, CanvasCallback<PollResponse> callback){ if (APIHelpers.paramIsNull(callback, nextURL)) { return; } callback.setIsNextPage(true); buildCacheInterface(PollInterface.class, callback, false).getNextPagePollsList(nextURL, callback); buildInterface(PollInterface.class, callback, false).getNextPagePollsList(nextURL, callback); } public static void getSinglePoll(long poll_id, CanvasCallback<PollResponse> callback) { if (APIHelpers.paramIsNull(callback, poll_id)) { return; } buildCacheInterface(PollInterface.class, callback).getSinglePoll(poll_id, callback); buildInterface(PollInterface.class, callback).getSinglePoll(poll_id, callback); } public static void createPoll(String title, CanvasCallback<PollResponse> callback) { if (APIHelpers.paramIsNull(callback, title)) { return; } buildInterface(PollInterface.class, callback).createPoll(title, "", callback); } public static void updatePoll(long poll_id, String title, CanvasCallback<PollResponse> callback) { if (APIHelpers.paramIsNull(callback, poll_id, title)) { return; } buildInterface(PollInterface.class, callback).updatePoll(poll_id, title, "", callback); } public static void deletePoll(long poll_id, CanvasCallback<Response> callback) { if (APIHelpers.paramIsNull(callback, poll_id)) { return; } buildInterface(PollInterface.class, callback).deletePoll(poll_id, callback); } }