package com.instructure.canvasapi.api;
import com.instructure.canvasapi.model.CanvasContext;
import com.instructure.canvasapi.model.DiscussionTopicHeader;
import com.instructure.canvasapi.utilities.APIHelpers;
import com.instructure.canvasapi.utilities.CanvasCallback;
import com.instructure.canvasapi.utilities.CanvasRestAdapter;
import retrofit.Callback;
import retrofit.RestAdapter;
import retrofit.http.Path;
import retrofit.http.GET;
/**
*
* Copyright (c) 2015 Instructure. All rights reserved.
*/
public class AnnouncementAPI extends BuildInterfaceAPI {
interface AnnouncementsInterface {
@GET("/{context_id}/discussion_topics?only_announcements=1")
void getFirstPageAnnouncementsList(@Path("context_id") long context_id, Callback<DiscussionTopicHeader[]> callback);
@GET("/{next}")
void getNextPageAnnouncementsList(@Path(value = "next", encode = false) String nextURL, Callback<DiscussionTopicHeader[]> callback);
}
/////////////////////////////////////////////////////////////////////////
// API Calls
/////////////////////////////////////////////////////////////////////////
public static void getFirstPageAnnouncements(CanvasContext canvasContext, CanvasCallback<DiscussionTopicHeader[]> callback) {
if (APIHelpers.paramIsNull(callback, canvasContext)) { return; }
buildCacheInterface(AnnouncementsInterface.class, callback, canvasContext).getFirstPageAnnouncementsList(canvasContext.getId(), callback);
buildInterface(AnnouncementsInterface.class, callback, canvasContext).getFirstPageAnnouncementsList(canvasContext.getId(), callback);
}
public static void getNextPageAnnouncements(String nextURL, CanvasCallback<DiscussionTopicHeader[]> callback){
if (APIHelpers.paramIsNull(callback, nextURL)) { return; }
callback.setIsNextPage(true);
buildCacheInterface(AnnouncementsInterface.class, callback, false).getNextPageAnnouncementsList(nextURL, callback);
buildInterface(AnnouncementsInterface.class, callback, false).getNextPageAnnouncementsList(nextURL, callback);
}
}