package com.instructure.canvasapi.api;
import com.instructure.canvasapi.model.CanvasContext;
import com.instructure.canvasapi.model.Page;
import com.instructure.canvasapi.utilities.APIHelpers;
import com.instructure.canvasapi.utilities.CanvasCallback;
import retrofit.Callback;
import retrofit.http.Path;
import retrofit.http.GET;
/**
*
* Copyright (c) 2015 Instructure. All rights reserved.
*/
public class PageAPI extends BuildInterfaceAPI {
interface PagesInterface {
@GET("/{context_id}/pages?sort=title&order=asc")
void getFirstPagePagesList(@Path("context_id") long context_id, Callback<Page[]> callback);
@GET("/{next}")
void getNextPagePagesList(@Path(value = "next", encode = false) String nextURL, Callback<Page[]> callback);
@GET("/{context_id}/pages/{pageid}")
void getDetailedPage(@Path("context_id") long context_id, @Path("pageid") String page_id, Callback<Page> callback);
@GET("/{context_id}/front_page")
void getFrontPage(@Path("context_id") long context_id, Callback<Page> callback);
}
/////////////////////////////////////////////////////////////////////////
// API Calls
/////////////////////////////////////////////////////////////////////////
public static void getFirstPagePages(CanvasContext canvasContext, CanvasCallback<Page[]> callback) {
if (APIHelpers.paramIsNull(callback, canvasContext)) { return; }
buildCacheInterface(PagesInterface.class, callback, canvasContext).getFirstPagePagesList(canvasContext.getId(), callback);
buildInterface(PagesInterface.class, callback, canvasContext).getFirstPagePagesList(canvasContext.getId(), callback);
}
public static void getNextPagePages(String nextURL, CanvasCallback<Page[]> callback){
if (APIHelpers.paramIsNull(callback, nextURL)) { return; }
callback.setIsNextPage(true);
buildCacheInterface(PagesInterface.class, callback, false).getNextPagePagesList(nextURL, callback);
buildInterface(PagesInterface.class, callback, false).getNextPagePagesList(nextURL, callback);
}
public static void getDetailedPage(CanvasContext canvasContext, String page_id, CanvasCallback<Page> callback) {
if (APIHelpers.paramIsNull(callback, canvasContext)) { return; }
buildCacheInterface(PagesInterface.class, callback, canvasContext).getDetailedPage(canvasContext.getId(), page_id, callback);
buildInterface(PagesInterface.class, callback, canvasContext).getDetailedPage(canvasContext.getId(), page_id, callback);
}
public static void getFrontPage(CanvasContext canvasContext, CanvasCallback<Page> callback) {
if (APIHelpers.paramIsNull(callback, canvasContext)) { return; }
buildCacheInterface(PagesInterface.class, callback, canvasContext).getFrontPage(canvasContext.getId(), callback);
buildInterface(PagesInterface.class, callback, canvasContext).getFrontPage(canvasContext.getId(), callback);
}
}